commit 7f497424208c3d1f48fe486fffd425c23079ef29 Author: zibright Date: Sun Apr 13 01:02:19 2025 +0800 add all diff --git a/2025/Driver/Init.c b/2025/Driver/Init.c new file mode 100644 index 0000000..6a1dc00 --- /dev/null +++ b/2025/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P2 = P2 & 0x1f | 0x80; + P0 = 0xff; + P2 &= 0x1f; + + P2 = P2 & 0x1f | 0xA0; + P0 = 0x00; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/2025/Driver/Init.h b/2025/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/2025/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/2025/Driver/Key.c b/2025/Driver/Key.c new file mode 100644 index 0000000..efa615b --- /dev/null +++ b/2025/Driver/Key.c @@ -0,0 +1,34 @@ +#include + +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + + P44 = 0;P42 = 1;P35 = 1;P34 = 1; + if(P33 == 0) temp = 4; + if(P32 == 0) temp = 5; + if(P31 == 0) temp = 6; + if(P30 == 0) temp = 7; + + P44 = 1;P42 = 0;P35 = 1;P34 = 1; + if(P33 == 0) temp = 8; + if(P32 == 0) temp = 9; + if(P31 == 0) temp = 10; + if(P30 == 0) temp = 11; + + P44 = 1;P42 = 1;P35 = 0;P34 = 1; + if(P33 == 0) temp = 12; + if(P32 == 0) temp = 13; + if(P31 == 0) temp = 14; + if(P30 == 0) temp = 15; + + P44 = 1;P42 = 1;P35 = 1;P34 = 0; + if(P33 == 0) temp = 16; + if(P32 == 0) temp = 17; + if(P31 == 0) temp = 18; + if(P30 == 0) temp = 19; + + ET0 = 1;P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/2025/Driver/Key.h b/2025/Driver/Key.h new file mode 100644 index 0000000..898c524 --- /dev/null +++ b/2025/Driver/Key.h @@ -0,0 +1,3 @@ +#include + +unsigned char Key_Read(); \ No newline at end of file diff --git a/2025/Driver/Led.c b/2025/Driver/Led.c new file mode 100644 index 0000000..451570a --- /dev/null +++ b/2025/Driver/Led.c @@ -0,0 +1,20 @@ +#include + +void Led_Disp(unsigned char addr,enable) +{ + static unsigned char temp = 0x00,temp_old = 0xff; + + if(enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if(temp != temp_old) + { + P2 = P2 & 0x1f | 0x80; + P0 = ~temp; + P2 &= 0x1f; + + temp_old = temp; + } + +} \ No newline at end of file diff --git a/2025/Driver/Led.h b/2025/Driver/Led.h new file mode 100644 index 0000000..3b6595e --- /dev/null +++ b/2025/Driver/Led.h @@ -0,0 +1,3 @@ +#include + +void Led_Disp(unsigned char addr,enable); \ No newline at end of file diff --git a/2025/Driver/Seg.c b/2025/Driver/Seg.c new file mode 100644 index 0000000..1343af2 --- /dev/null +++ b/2025/Driver/Seg.c @@ -0,0 +1,31 @@ +#include + +unsigned char Seg_Dula[]={ + 0xc0,0xf9,0xa4,0xb0, + 0x99,0x92,0x82,0xf8, + 0x80,0x90,0x88,0x83, + 0xc6,0xa1,0x86,0x8e, + 0xff +}; +unsigned char Seg_Wela[]={ + 0x01,0x02,0x04,0x08, + 0x10,0x20,0x40,0x80 +}; + +void Seg_Disp(unsigned char Wela,Dula,Point) +{ + P2 = P2 & 0x1f | 0xe0; + P0 = 0xff; + P2 &= 0x1f; + + P2 = P2 & 0x1f | 0xc0; + P0 = Seg_Wela[Wela]; + P2 &= 0x1f; + + if(Point) + P0 = Seg_Dula[Dula] & 0x7f; + else + P0 = Seg_Dula[Dula]; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/2025/Driver/Seg.h b/2025/Driver/Seg.h new file mode 100644 index 0000000..0e27c5e --- /dev/null +++ b/2025/Driver/Seg.h @@ -0,0 +1,3 @@ +#include + +void Seg_Disp(unsigned char Wela,Dula,Point); \ No newline at end of file diff --git a/2025/User/2025.uvgui.ZBright b/2025/User/2025.uvgui.ZBright new file mode 100644 index 0000000..fcb5f60 --- /dev/null +++ b/2025/User/2025.uvgui.ZBright @@ -0,0 +1,1914 @@ + + + + -6.1 + +
### uVision Project, (C) Keil Software
+ + + D:\Git\2025\Driver + + + + + + + 38003 + Registers + 188 122 + + + 346 + Code Coverage + 1410 160 + + + 204 + Performance Analyzer + 1570 + + + + + + 35141 + Event Statistics + + 200 50 700 + + + 1506 + Symbols + + 106 106 106 + + + 1936 + Watch 1 + + 200 133 133 + + + 1937 + Watch 2 + + 200 133 133 + + + 1935 + Call Stack + Locals + + 200 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + 466 + Source Browser + 500 + 300 + + + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 57 + 779 + 2180 + 1398 + + + + 0 + + 409 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000010000000100000019443A5C4769745C323032355C4472697665725C496E69742E630000000006496E69742E6300000000C5D4F200FFFFFFFF18443A5C4769745C323032355C4472697665725C4C65642E6300000000054C65642E6300000000FFDC7800FFFFFFFF18443A5C4769745C323032355C4472697665725C5365672E6300000000055365672E6300000000BECEA100FFFFFFFF18443A5C4769745C323032355C4472697665725C4B65792E6300000000054B65792E6300000000F0A0A100FFFFFFFF17443A5C4769745C323032355C557365725C6D61696E2E6300000000066D61696E2E6300000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000057040000A70000007C08000093040000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 440100004F0000007007000013010000 + + + 16 + B404000098000000E00A00005C010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 260100003D010000660200004E020000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 260100003D010000A202000051040000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000DE04000001020000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000DE04000001020000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000DE04000001020000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000DE04000001020000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 260100003D010000DE04000001020000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000660200004E020000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000660200004E020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000660200004E020000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000DE04000001020000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000DE04000001020000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000DE04000001020000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000DE04000001020000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 260100003D010000A202000051040000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 260100003D010000A202000051040000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000530400006905000003050000 + + + 16 + 260100003D010000DE04000001020000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000ED02000070070000C5030000 + + + 16 + 260100003D010000DE04000001020000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000005604000066050000EA040000 + + + 16 + 260100003D010000DE04000001020000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 260100003D010000DE04000001020000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 260100003D010000DE04000001020000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000DE04000001020000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 260100003D010000DE04000001020000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 260100003D010000DE04000001020000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 260100003D010000660200004E020000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 260100003D010000DE04000001020000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 260100003D010000A202000051040000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000005604000066050000EA040000 + + + 16 + 260100003D010000DE04000001020000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000005604000066050000EA040000 + + + 16 + 260100003D010000A202000051040000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000660200004E020000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000660200004E020000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000005604000066050000EA040000 + + + 16 + 260100003D010000A202000051040000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000005604000066050000EA040000 + + + 16 + 260100003D010000A202000051040000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 260100003D010000DE04000001020000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + 260100003D010000660200004E020000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 966 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000030500006905000016050000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 476 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 260100003D010000660200004E020000 + + + + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000130100007007000017010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000B404000098000000E00A00005C010000440100004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A009000098000000E00A000046030000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F000000440100003B040000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000007003000098000000B004000084040000000000004F000000400100003B0400000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E902000070070000ED02000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000007003000036030000E00A00000E04000000000000ED02000070070000C503000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000ED020000BC030000C503000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000003B040000690500003F040000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000007003000088040000D90800004C050000000000003F04000069050000030500000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2537 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 968 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000432303235960000000000000001000432303235000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 2560 + 1440 + + + + + + 1 + 0 + + 100 + 1 + + ..\Driver\Init.c + 1 + 1 + 12 + 0 + + 0 + + + ..\Driver\Led.c + 19 + 1 + 15 + 0 + + 0 + + + ..\Driver\Seg.c + 24 + 1 + 7 + 0 + + 0 + + + ..\Driver\Key.c + 26 + 1 + 18 + 0 + + 0 + + + .\main.c + 4 + 58 + 67 + 1 + + 0 + + + + +
diff --git a/2025/User/2025.uvopt b/2025/User/2025.uvopt new file mode 100644 index 0000000..89c8d25 --- /dev/null +++ b/2025/User/2025.uvopt @@ -0,0 +1,241 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp; *.cc; *.cxx + 0 + + + + 0 + 0 + + + + 2025 + 0x0 + MCS-51 + + 35000000 + + 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 + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + + + 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 + + + + + + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 5 + 1 + 1 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + +
diff --git a/2025/User/2025.uvproj b/2025/User/2025.uvproj new file mode 100644 index 0000000..36e0543 --- /dev/null +++ b/2025/User/2025.uvproj @@ -0,0 +1,415 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + 2025 + 0x0 + MCS-51 + 0 + + + STC15F2K60S2 Series + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + 2025 + 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 + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Init.c + 1 + ..\Driver\Init.c + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + + + + + +
diff --git a/2025/User/Listings/2025.m51 b/2025/User/Listings/2025.m51 new file mode 100644 index 0000000..7808251 --- /dev/null +++ b/2025/User/Listings/2025.m51 @@ -0,0 +1,380 @@ +BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.4.0, INVOKED BY: +C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Init.obj, .\Objects\Led.obj, .\Obj +>> ects\Seg.obj, .\Objects\Key.obj TO .\Objects\2025 PRINT (.\Listings\2025.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Init.obj (INIT) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + C:\USERS\ZBRIGHT\APPDATA\LOCAL\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\2025 (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 0021H UNIT ?DT?MAIN + DATA 0029H 0019H UNIT ?DT?SEG + DATA 0042H 0002H UNIT ?DT?LED + IDATA 0044H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0001H UNIT ?PR?LED_PROC?MAIN + 0004H 0007H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 008CH UNIT ?C_C51STARTUP + CODE 009AH 0088H UNIT ?PR?TIMER0_SERVER?MAIN + CODE 0122H 007AH UNIT ?PR?KEY_READ?KEY + CODE 019CH 0042H UNIT ?C_INITSEG + CODE 01DEH 0042H UNIT ?PR?_SEG_DISP?SEG + CODE 0220H 003BH UNIT ?PR?_LED_DISP?LED + CODE 025BH 0025H UNIT ?PR?KEY_PROC?MAIN + CODE 0280H 0022H UNIT ?PR?SEG_PROC?MAIN + CODE 02A2H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 02BFH 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 02D4H 0011H UNIT ?PR?MAIN?MAIN + + + +OVERLAY MAP OF MODULE: .\Objects\2025 (MAIN) + + +SEGMENT + +--> CALLED SEGMENT +--------------------- +?PR?TIMER0_SERVER?MAIN + +--> ?PR?_SEG_DISP?SEG + BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 2 + + + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?KEY_PROC?MAIN + +--> ?PR?KEY_READ?KEY + + + +SYMBOL TABLE OF MODULE: .\Objects\2025 (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:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + B:00A8H.7 PUBLIC EA + D:00F8H PUBLIC P7 + C:0003H PUBLIC Led_Proc + D:0008H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:009AH PUBLIC Timer0_Server + C:0280H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:0010H PUBLIC Seg_Buf + C:025BH PUBLIC Key_Proc + D:0018H PUBLIC Seg_Slow_Down + D:001AH PUBLIC Seg_Show + D:00D8H PUBLIC CCON + D:001BH PUBLIC Key_Down + C:02D4H PUBLIC main + C:02BFH PUBLIC Timer0_Init + D:001CH PUBLIC Key_Old + D:001DH PUBLIC Key_Slow_Down + D:001EH PUBLIC Key_Val + D:001FH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 3 + + + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:008CH PUBLIC TH0 + D:0020H PUBLIC Key_Up + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + D:0021H PUBLIC ucLed + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + C:025BH LINE# 29 + C:025BH LINE# 30 + C:025BH LINE# 31 + C:025FH LINE# 32 + C:0262H LINE# 34 + C:0267H LINE# 35 + C:0270H LINE# 36 + C:0276H LINE# 37 + C:0279H LINE# 39 + C:027DH LINE# 40 + C:027FH LINE# 41 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:0280H LINE# 43 + C:0280H LINE# 44 + C:0280H LINE# 45 + C:0286H LINE# 46 + C:028BH LINE# 48 + C:0298H LINE# 49 + C:02A1H LINE# 50 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0003H LINE# 52 + C:0003H LINE# 53 + C:0003H LINE# 55 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:02BFH LINE# 58 + C:02BFH LINE# 59 + C:02BFH LINE# 60 + C:02C2H LINE# 61 + C:02C5H LINE# 62 + C:02C8H LINE# 63 + C:02CBH LINE# 64 + C:02CDH LINE# 65 + C:02CFH LINE# 66 + C:02D1H LINE# 67 + C:02D3H LINE# 68 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_SERVER + C:009AH LINE# 70 + C:00B7H LINE# 72 + C:00C1H LINE# 73 + C:00D8H LINE# 74 + C:00E2H LINE# 75 + C:00F9H LINE# 76 + C:0107H LINE# 78 + BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 4 + + + ------- ENDPROC TIMER0_SERVER + ------- PROC MAIN + C:02D4H LINE# 80 + C:02D4H LINE# 81 + C:02D4H LINE# 82 + C:02D7H LINE# 83 + C:02DAH LINE# 84 + C:02DAH LINE# 85 + C:02DAH LINE# 86 + C:02DDH LINE# 87 + C:02E0H LINE# 88 + C:02E3H LINE# 89 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:02A2H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:02A2H LINE# 3 + C:02A2H LINE# 4 + C:02A2H LINE# 5 + C:02AAH LINE# 6 + C:02ADH LINE# 7 + C:02B0H LINE# 9 + C:02B8H LINE# 10 + C:02BBH LINE# 11 + C:02BEH LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0220H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 5 + + + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0004H SYMBOL enable + ------- DO + D:0042H SYMBOL temp + D:0043H SYMBOL temp_old + ------- ENDDO + C:0220H LINE# 3 + C:0220H LINE# 4 + C:0220H LINE# 7 + C:0224H LINE# 8 + C:0233H LINE# 10 + C:0241H LINE# 11 + C:0247H LINE# 12 + C:0247H LINE# 13 + C:024FH LINE# 14 + C:0254H LINE# 15 + C:0257H LINE# 17 + C:025AH LINE# 18 + C:025AH LINE# 20 + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:0029H PUBLIC Seg_Dula + D:003AH PUBLIC Seg_Wela + D:00A8H PUBLIC IE + C:01DEH PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL Wela + D:0004H SYMBOL Dula + D:0002H SYMBOL Point + C:01DEH LINE# 15 + C:01DEH LINE# 16 + C:01DEH LINE# 17 + C:01E6H LINE# 18 + C:01E9H LINE# 19 + C:01ECH LINE# 21 + BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 6 + + + C:01F4H LINE# 22 + C:01FBH LINE# 23 + C:01FEH LINE# 25 + C:0202H LINE# 26 + C:020DH LINE# 28 + C:0214H LINE# 29 + C:021CH LINE# 30 + C:021FH LINE# 31 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0122H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + B:00B0H.1 PUBLIC P31 + D:0098H PUBLIC SCON + B:00B0H.2 PUBLIC P32 + D:0088H PUBLIC TCON + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0122H LINE# 3 + C:0122H LINE# 4 + C:0122H LINE# 5 + C:0124H LINE# 6 + C:0126H LINE# 8 + C:012EH LINE# 9 + C:0133H LINE# 10 + C:0138H LINE# 11 + C:013DH LINE# 12 + C:0142H LINE# 14 + C:014AH LINE# 15 + C:014FH LINE# 16 + C:0154H LINE# 17 + C:0159H LINE# 18 + C:015EH LINE# 20 + C:0166H LINE# 21 + BL51 BANKED LINKER/LOCATER V6.22.4.0 04/13/2025 00:35:53 PAGE 7 + + + C:016BH LINE# 22 + C:0170H LINE# 23 + C:0175H LINE# 24 + C:017AH LINE# 26 + C:0182H LINE# 27 + C:0187H LINE# 28 + C:018CH LINE# 29 + C:0191H LINE# 30 + C:0196H LINE# 32 + C:019BH LINE# 33 + C:019BH LINE# 34 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + +Program Size: data=69.0 xdata=0 code=734 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/2025/User/Listings/Init.lst b/2025/User/Listings/Init.lst new file mode 100644 index 0000000..6fc54c9 --- /dev/null +++ b/2025/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.60.7.0 INIT 04/13/2025 00:35:53 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: C:\Users\ZBright\AppData\Local\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE IN + -CDIR(..\Driver) DEBUG OBJECTEXTEND PRINT(.\Listings\Init.lst) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P2 = P2 & 0x1f | 0x80; + 6 1 P0 = 0xff; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P2 = P2 & 0x1f | 0xA0; + 10 1 P0 = 0x00; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/2025/User/Listings/Key.lst b/2025/User/Listings/Key.lst new file mode 100644 index 0000000..fb4c743 --- /dev/null +++ b/2025/User/Listings/Key.lst @@ -0,0 +1,58 @@ +C51 COMPILER V9.60.7.0 KEY 04/13/2025 00:35:53 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: C:\Users\ZBright\AppData\Local\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INC + -DIR(..\Driver) DEBUG OBJECTEXTEND PRINT(.\Listings\Key.lst) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include + 2 + 3 unsigned char Key_Read() + 4 { + 5 1 unsigned char temp = 0; + 6 1 ET0 = 0; + 7 1 + 8 1 P44 = 0;P42 = 1;P35 = 1;P34 = 1; + 9 1 if(P33 == 0) temp = 4; + 10 1 if(P32 == 0) temp = 5; + 11 1 if(P31 == 0) temp = 6; + 12 1 if(P30 == 0) temp = 7; + 13 1 + 14 1 P44 = 1;P42 = 0;P35 = 1;P34 = 1; + 15 1 if(P33 == 0) temp = 8; + 16 1 if(P32 == 0) temp = 9; + 17 1 if(P31 == 0) temp = 10; + 18 1 if(P30 == 0) temp = 11; + 19 1 + 20 1 P44 = 1;P42 = 1;P35 = 0;P34 = 1; + 21 1 if(P33 == 0) temp = 12; + 22 1 if(P32 == 0) temp = 13; + 23 1 if(P31 == 0) temp = 14; + 24 1 if(P30 == 0) temp = 15; + 25 1 + 26 1 P44 = 1;P42 = 1;P35 = 1;P34 = 0; + 27 1 if(P33 == 0) temp = 16; + 28 1 if(P32 == 0) temp = 17; + 29 1 if(P31 == 0) temp = 18; + 30 1 if(P30 == 0) temp = 19; + 31 1 + 32 1 ET0 = 1;P3 = 0xff; + 33 1 return temp; + 34 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/2025/User/Listings/Led.lst b/2025/User/Listings/Led.lst new file mode 100644 index 0000000..ae3a7e8 --- /dev/null +++ b/2025/User/Listings/Led.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.60.7.0 LED 04/13/2025 00:35:53 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: C:\Users\ZBright\AppData\Local\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INC + -DIR(..\Driver) DEBUG OBJECTEXTEND PRINT(.\Listings\Led.lst) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include + 2 + 3 void Led_Disp(unsigned char addr,enable) + 4 { + 5 1 static unsigned char temp = 0x00,temp_old = 0xff; + 6 1 + 7 1 if(enable) + 8 1 temp |= 0x01 << addr; + 9 1 else + 10 1 temp &= ~(0x01 << addr); + 11 1 if(temp != temp_old) + 12 1 { + 13 2 P2 = P2 & 0x1f | 0x80; + 14 2 P0 = ~temp; + 15 2 P2 &= 0x1f; + 16 2 + 17 2 temp_old = temp; + 18 2 } + 19 1 + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 59 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 2 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/2025/User/Listings/Seg.lst b/2025/User/Listings/Seg.lst new file mode 100644 index 0000000..ee06493 --- /dev/null +++ b/2025/User/Listings/Seg.lst @@ -0,0 +1,55 @@ +C51 COMPILER V9.60.7.0 SEG 04/13/2025 00:35:53 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: C:\Users\ZBright\AppData\Local\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INC + -DIR(..\Driver) DEBUG OBJECTEXTEND PRINT(.\Listings\Seg.lst) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include + 2 + 3 unsigned char Seg_Dula[]={ + 4 0xc0,0xf9,0xa4,0xb0, + 5 0x99,0x92,0x82,0xf8, + 6 0x80,0x90,0x88,0x83, + 7 0xc6,0xa1,0x86,0x8e, + 8 0xff + 9 }; + 10 unsigned char Seg_Wela[]={ + 11 0x01,0x02,0x04,0x08, + 12 0x10,0x20,0x40,0x80 + 13 }; + 14 + 15 void Seg_Disp(unsigned char Wela,Dula,Point) + 16 { + 17 1 P2 = P2 & 0x1f | 0xe0; + 18 1 P0 = 0xff; + 19 1 P2 &= 0x1f; + 20 1 + 21 1 P2 = P2 & 0x1f | 0xc0; + 22 1 P0 = Seg_Wela[Wela]; + 23 1 P2 &= 0x1f; + 24 1 + 25 1 if(Point) + 26 1 P0 = Seg_Dula[Dula] & 0x7f; + 27 1 else + 28 1 P0 = Seg_Dula[Dula]; + 29 1 P2 = P2 & 0x1f | 0xe0; + 30 1 P2 &= 0x1f; + 31 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 66 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 25 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/2025/User/Listings/main.lst b/2025/User/Listings/main.lst new file mode 100644 index 0000000..2d08115 --- /dev/null +++ b/2025/User/Listings/main.lst @@ -0,0 +1,129 @@ +C51 COMPILER V9.60.7.0 MAIN 04/13/2025 00:35:53 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: C:\Users\ZBright\AppData\Local\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Dr + -iver) DEBUG OBJECTEXTEND PRINT(.\Listings\main.lst) OBJECT(.\Objects\main.obj) + +line level source + + 1 /* 头文件申明*/ + 2 #include + 3 #include + 4 #include + 5 #include + 6 #include + 7 + 8 /* 变量申明*/ + 9 unsigned char Key_Slow_Down;//按键减速变量 + 10 unsigned char Key_Val,Key_Old,Key_Down,Key_Up; + 11 unsigned int Seg_Slow_Down; + 12 unsigned char Seg_Pos; + 13 unsigned char Seg_Buf[8]= + 14 { + 15 16,16,16,16,16,16,16,16 + 16 }; + 17 unsigned char Seg_Point[8]= + 18 { + 19 0,0,0,0,0,0,0,0 + 20 }; + 21 unsigned char ucLed[8]= + 22 { + 23 1,0,0,0,0,0,0,0 + 24 }; + 25 + 26 unsigned char Seg_Show; + 27 + 28 /* 处理函数(key,seg,led)*/ + 29 void Key_Proc() + 30 { + 31 1 if(Key_Slow_Down) return; + 32 1 Key_Slow_Down = 1; + 33 1 + 34 1 Key_Val = Key_Read(); + 35 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 36 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 37 1 Key_Old = Key_Val; + 38 1 + 39 1 if(Key_Down != 0) + 40 1 Seg_Show = Key_Down; + 41 1 } + 42 + 43 void Seg_Proc() + 44 { + 45 1 if(Seg_Slow_Down) return; + 46 1 Seg_Slow_Down = 1; + 47 1 + 48 1 Seg_Buf[0] = Seg_Show /10 %10; + 49 1 Seg_Buf[1] = Seg_Show %10; + 50 1 } + 51 + 52 void Led_Proc() + 53 { + 54 1 + C51 COMPILER V9.60.7.0 MAIN 04/13/2025 00:35:53 PAGE 2 + + 55 1 } + 56 + 57 /* 定时器函数(初始化、中断函数)*/ + 58 void Timer0_Init(void) //1毫秒@12.000MHz + 59 { + 60 1 AUXR &= 0x7F; //定时器时钟12T模式 + 61 1 TMOD &= 0xF0; //设置定时器模式 + 62 1 TL0 = 0x18; //设置定时初始值 + 63 1 TH0 = 0xFC; //设置定时初始值 + 64 1 TF0 = 0; //清除TF0标志 + 65 1 TR0 = 1; //定时器0开始计时 + 66 1 ET0 = 1; + 67 1 EA = 1; + 68 1 } + 69 + 70 void Timer0_Server() interrupt 1 + 71 { + 72 1 if(++Key_Slow_Down == 10) Key_Slow_Down = 0; + 73 1 if(++Seg_Slow_Down == 500) Seg_Slow_Down = 0; + 74 1 if(++Seg_Pos == 8) Seg_Pos = 0; + 75 1 Seg_Disp(Seg_Pos,Seg_Buf[Seg_Pos],Seg_Point[Seg_Pos]); + 76 1 Led_Disp(Seg_Pos,ucLed[Seg_Pos]); + 77 1 + 78 1 } + 79 /* 主函数*/ + 80 void main() + 81 { + 82 1 System_Init(); + 83 1 Timer0_Init(); + 84 1 while(1) + 85 1 { + 86 2 Key_Proc(); + 87 2 Seg_Proc(); + 88 2 Led_Proc(); + 89 2 } + 90 1 } + 91 + 92 + 93 + 94 + 95 + 96 + 97 + 98 + 99 + 100 + 101 + 102 + 103 + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 246 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 33 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/2025/User/Objects/2025 b/2025/User/Objects/2025 new file mode 100644 index 0000000..9a8b63f Binary files /dev/null and b/2025/User/Objects/2025 differ diff --git a/2025/User/Objects/2025.build_log.htm b/2025/User/Objects/2025.build_log.htm new file mode 100644 index 0000000..9cb0c2c --- /dev/null +++ b/2025/User/Objects/2025.build_log.htm @@ -0,0 +1,38 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.38.0.0 +Copyright (C) 2022 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 123 123, 123, LIC=GM82M-XP6U2-D8NFM-XY9N7-MY3SU-RZV4P + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.60.7.0 +Toolchain Path: C:\Users\ZBright\AppData\Local\Keil_v5\C51\BIN +C Compiler: C51.exe V9.60.7.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.4.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.125.1.0 +Dialog DLL: DP51.DLL V2.69.0.0 +

Project:

+D:\Git\2025\User\2025.uvproj +Project File Date: 04/12/2025 + +

Output:

+Rebuild target '2025' +compiling main.c... +compiling Init.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +linking... +Program Size: data=69.0 xdata=0 code=734 +creating hex file from ".\Objects\2025"... +".\Objects\2025" - 0 Error(s), 0 Warning(s). +Build Time Elapsed: 00:00:00 +
+ + diff --git a/2025/User/Objects/2025.hex b/2025/User/Objects/2025.hex new file mode 100644 index 0000000..ddbaa88 --- /dev/null +++ b/2025/User/Objects/2025.hex @@ -0,0 +1,59 @@ +:10019C0008101010101010101010080800000000AB +:0E01AC0000000000082101000000000000001B +:10025B00E51D7020751D011201228F1EE51C651E08 +:10026B00FF551EF51BE51EF45FF520851E1CE51BD7 +:05027B006002F51A22EB +:10028000E5194518701BF518751901E51A75F00A7E +:100290008475F00A8485F010E51A75F00A8485F0FB +:0202A000112229 +:0100030022DA +:1002BF00538E7F5389F0758A18758CFCC28DD28C42 +:0502CF00D2A9D2AF220C +:03000B0002009A56 +:10009A00C0E0C0F0C083C082C0D075D000C000C02C +:1000AA0001C002C003C004C005C006C007051DE5A3 +:1000BA001DB40A03751D000519E51970020518FF1C +:1000CA00AE18BE0109BFF406751800751900051FA0 +:1000DA00E51FB40803751F007410251FF8E6FD7CA0 +:1000EA00007408251FF8E6FB7A00AF1F1201DE74C0 +:1000FA0021251FF8E6FD7C00AF1F120220D007D091 +:10010A0006D005D004D003D002D001D000D0D0D080 +:08011A0082D083D0F0D0E03266 +:1002D4001202A21202BF12025B12028012000380F9 +:0102E400F524 +:1002A200E5A0541F4480F5A07580FF53A01FE5A070 +:0D02B200541F44A0F5A0E4F58053A01F22C6 +:0601BA000142000143FFB9 +:10022000ED4C600FA8077401088002C333D8FC426C +:1002300042800EA8077401088002C333D8FCF45230 +:1002400042E54265436013E5A0541F4480F5A0E5F4 +:0A02500042F4F58053A01F854243DD +:01025A002281 +:1001C0001129C0F9A4B0999282F880908883C6A1C1 +:0D01D000868EFF083A0102040810204080CE +:1001DE00E5A0541F44E0F5A07580FF53A01FE5A0D5 +:1001EE00541F44C0F5A0743A2FF8E6F58053A01FB3 +:1001FE00EB4A600B74292DF8E6547FF58080077466 +:10020E00292DF8E6F580E5A0541F44E0F5A053A093 +:02021E001F229D +:10012200E4FFC2A9C2C4D2C2D2B5D2B420B3027F04 +:100132000420B2027F0520B1027F0620B0027F07B1 +:10014200D2C4C2C2D2B5D2B420B3027F0820B20256 +:100152007F0920B1027F0A20B0027F0BD2C4D2C233 +:10016200C2B5D2B420B3027F0C20B2027F0D20B1FF +:10017200027F0E20B0027F0FD2C4D2C2D2B5C2B467 +:1001820020B3027F1020B2027F1120B1027F122021 +:09019200B0027F13D2A975B0FF81 +:01019B002241 +:0300000002000EED +:0C000E00787FE4F6D8FD758143020055B0 +:10001A000202D4E493A3F8E493A34003F68001F226 +:10002A0008DFF48029E493A3F85407240CC8C333E7 +:10003A00C4540F4420C8834004F456800146F6DFB6 +:10004A00E4800B010204081020408090019CE47EA9 +:10005A00019360BCA3FF543F30E509541FFEE493AB +:10006A00A360010ECF54C025E060A840B8E493A372 +:10007A00FAE493A3F8E493A3C8C582C8CAC583CA9D +:10008A00F0A3C8C582C8CAC583CADFE9DEE780BE55 +:0101DD000021 +:00000001FF diff --git a/2025/User/Objects/2025.lnp b/2025/User/Objects/2025.lnp new file mode 100644 index 0000000..be79e44 --- /dev/null +++ b/2025/User/Objects/2025.lnp @@ -0,0 +1,7 @@ +".\Objects\main.obj", +".\Objects\Init.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj" +TO ".\Objects\2025" +PRINT(".\Listings\2025.m51") RAMSIZE(256) diff --git a/2025/User/Objects/Init.obj b/2025/User/Objects/Init.obj new file mode 100644 index 0000000..0e73d21 Binary files /dev/null and b/2025/User/Objects/Init.obj differ diff --git a/2025/User/Objects/Key.obj b/2025/User/Objects/Key.obj new file mode 100644 index 0000000..6e40c6c Binary files /dev/null and b/2025/User/Objects/Key.obj differ diff --git a/2025/User/Objects/Led.obj b/2025/User/Objects/Led.obj new file mode 100644 index 0000000..1e996a8 Binary files /dev/null and b/2025/User/Objects/Led.obj differ diff --git a/2025/User/Objects/Seg.obj b/2025/User/Objects/Seg.obj new file mode 100644 index 0000000..f5ed873 Binary files /dev/null and b/2025/User/Objects/Seg.obj differ diff --git a/2025/User/Objects/main.obj b/2025/User/Objects/main.obj new file mode 100644 index 0000000..59b8fc2 Binary files /dev/null and b/2025/User/Objects/main.obj differ diff --git a/2025/User/main.c b/2025/User/main.c new file mode 100644 index 0000000..67fd67e --- /dev/null +++ b/2025/User/main.c @@ -0,0 +1,103 @@ +/* 头文件申明*/ +#include +#include +#include +#include +#include + +/* 变量申明*/ +unsigned char Key_Slow_Down;//按键减速变量 +unsigned char Key_Val,Key_Old,Key_Down,Key_Up; +unsigned int Seg_Slow_Down; +unsigned char Seg_Pos; +unsigned char Seg_Buf[8]= +{ + 16,16,16,16,16,16,16,16 +}; +unsigned char Seg_Point[8]= +{ + 0,0,0,0,0,0,0,0 +}; +unsigned char ucLed[8]= +{ + 1,0,0,0,0,0,0,0 +}; + +unsigned char Seg_Show; + +/* 处理函数(key,seg,led)*/ +void Key_Proc() +{ + if(Key_Slow_Down) return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + + if(Key_Down != 0) + Seg_Show = Key_Down; +} + +void Seg_Proc() +{ + if(Seg_Slow_Down) return; + Seg_Slow_Down = 1; + + Seg_Buf[0] = Seg_Show /10 %10; + Seg_Buf[1] = Seg_Show %10; +} + +void Led_Proc() +{ + +} + +/* 定时器函数(初始化、中断函数)*/ +void Timer0_Init(void) //1毫秒@12.000MHz +{ + AUXR &= 0x7F; //定时器时钟12T模式 + TMOD &= 0xF0; //设置定时器模式 + TL0 = 0x18; //设置定时初始值 + TH0 = 0xFC; //设置定时初始值 + TF0 = 0; //清除TF0标志 + TR0 = 1; //定时器0开始计时 + ET0 = 1; + EA = 1; +} + +void Timer0_Server() interrupt 1 +{ + if(++Key_Slow_Down == 10) Key_Slow_Down = 0; + if(++Seg_Slow_Down == 500) Seg_Slow_Down = 0; + if(++Seg_Pos == 8) Seg_Pos = 0; + Seg_Disp(Seg_Pos,Seg_Buf[Seg_Pos],Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos,ucLed[Seg_Pos]); + +} +/* 主函数*/ +void main() +{ + System_Init(); + Timer0_Init(); + while(1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} + + + + + + + + + + + + + diff --git a/DP2024_SCM(单片机)/BSP/ds1302.c b/DP2024_SCM(单片机)/BSP/ds1302.c new file mode 100644 index 0000000..264912f --- /dev/null +++ b/DP2024_SCM(单片机)/BSP/ds1302.c @@ -0,0 +1,53 @@ +/* # DS1302代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ + +// +void Write_Ds1302(unsigned char temp) +{ + unsigned char i; + for (i=0;i<8;i++) + { + SCK = 0; + SDA = temp&0x01; + temp>>=1; + SCK=1; + } +} + +// +void Write_Ds1302_Byte( unsigned char address,unsigned char dat ) +{ + RST=0; _nop_(); + SCK=0; _nop_(); + RST=1; _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST=0; +} + +// +unsigned char Read_Ds1302_Byte ( unsigned char address ) +{ + unsigned char i,temp=0x00; + RST=0; _nop_(); + SCK=0; _nop_(); + RST=1; _nop_(); + Write_Ds1302(address); + for (i=0;i<8;i++) + { + SCK=0; + temp>>=1; + if(SDA) + temp|=0x80; + SCK=1; + } + RST=0; _nop_(); + SCK=0; _nop_(); + SCK=1; _nop_(); + SDA=0; _nop_(); + SDA=1; _nop_(); + return (temp); +} diff --git a/DP2024_SCM(单片机)/BSP/iic.c b/DP2024_SCM(单片机)/BSP/iic.c new file mode 100644 index 0000000..31f7f3e --- /dev/null +++ b/DP2024_SCM(单片机)/BSP/iic.c @@ -0,0 +1,108 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ + +#define DELAY_TIME 10 + +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_();_nop_();_nop_();_nop_();_nop_(); + _nop_();_nop_();_nop_();_nop_();_nop_(); + _nop_();_nop_();_nop_();_nop_();_nop_(); + } + while(n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for(i=0; i<8; i++){ + scl = 0; + I2C_Delay(DELAY_TIME); + if(byt & 0x80){ + sda = 1; + } + else{ + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for(i=0;i<8;i++){ + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if(sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + diff --git a/DP2024_SCM(单片机)/BSP/onewire.c b/DP2024_SCM(单片机)/BSP/onewire.c new file mode 100644 index 0000000..5fde6b3 --- /dev/null +++ b/DP2024_SCM(单片机)/BSP/onewire.c @@ -0,0 +1,66 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ + +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while(t--){ + for(i=0;i<12;i++); + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for(i=0;i<8;i++) + { + DQ = 0; + DQ = dat&0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for(i=0;i<8;i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + if(DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} diff --git a/DP2024_SCM(单片机)/CH34x_Driver/CH341PT.DLL b/DP2024_SCM(单片机)/CH34x_Driver/CH341PT.DLL new file mode 100644 index 0000000..9274962 Binary files /dev/null and b/DP2024_SCM(单片机)/CH34x_Driver/CH341PT.DLL differ diff --git a/DP2024_SCM(单片机)/CH34x_Driver/CH341S64.SYS b/DP2024_SCM(单片机)/CH34x_Driver/CH341S64.SYS new file mode 100644 index 0000000..97d7498 Binary files /dev/null and b/DP2024_SCM(单片机)/CH34x_Driver/CH341S64.SYS differ diff --git a/DP2024_SCM(单片机)/CH34x_Driver/CH341S98.SYS b/DP2024_SCM(单片机)/CH34x_Driver/CH341S98.SYS new file mode 100644 index 0000000..8aec77b Binary files /dev/null and b/DP2024_SCM(单片机)/CH34x_Driver/CH341S98.SYS differ diff --git a/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.CAT b/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.CAT new file mode 100644 index 0000000..8355857 Binary files /dev/null and b/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.CAT differ diff --git a/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.INF b/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.INF new file mode 100644 index 0000000..077cb71 --- /dev/null +++ b/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.INF @@ -0,0 +1,226 @@ +; CH341SER.INF +; Driver for CH340/CH341 (USB=>SERIAL chip) V3.5 +; WDM&VXD for Windows 98/Me/2000/XP/Vista/7/8/8.1/10/SERVER 2003/2008/2012/2016 +; Copyright (C) W.ch 2001-2019 +; + +[Version] +Signature = "$Chicago$" +Class = Ports +ClassGuid = {4D36E978-E325-11CE-BFC1-08002BE10318} +Provider = %WinChipHead% +DriverVer = 01/30/2019, 3.5.2019.1 +CatalogFile = CH341SER.CAT + + +[ControlFlags] +ExcludeFromSelect = USB\VID_1A86&PID_7523 +ExcludeFromSelect = USB\VID_1A86&PID_5523 +ExcludeFromSelect = USB\VID_1A86&PID_7522 +ExcludeFromSelect = USB\VID_1A86&PID_E523 +ExcludeFromSelect = USB\VID_4348&PID_5523 +ExcludeFromSelect = USB\VID_4348&PID_5523&REV_0250 +ExcludeFromSelect = USBSERPORT\SER5523 +ExcludeFromSelect = CH341PORT\SER5523 + +[Manufacturer] +%WinChipHead% = WinChipHead,NT,NTamd64,NTia64 + +[WinChipHead] +%CH340SER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_7523 +%CH341ASER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_5523 +%CH340KSER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_7522 +%CH330SER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_E523 +%CH341SER.DeviceDesc% = CH341SER_Install, USB\VID_4348&PID_5523 +%CH340SER.DeviceDesc% = CH341SER_Install, USB\VID_4348&PID_5523&REV_0250 +%CH341S98.DeviceDesc% = CH341S98_Install, USBSERPORT\SER5523 +%CH341S98.DeviceDesc% = CH341S98_Install, CH341PORT\SER5523 + +[WinChipHead.NT] +%CH340SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_7523 +%CH341ASER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_5523 +%CH340KSER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_7522 +%CH330SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_E523 +%CH341SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_4348&PID_5523 +%CH340SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_4348&PID_5523&REV_0250 + +[WinChipHead.NTamd64] +%CH340SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_7523 +%CH341ASER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_5523 +%CH340KSER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_7522 +%CH330SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_E523 +%CH341SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_4348&PID_5523 +%CH340SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_4348&PID_5523&REV_0250 + +[WinChipHead.NTia64] +%CH340SER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_1A86&PID_7523 +%CH341ASER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_1A86&PID_5523 +%CH340KSER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_1A86&PID_7522 +%CH330SER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_1A86&PID_E523 +%CH341SER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_4348&PID_5523 +%CH340SER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_4348&PID_5523&REV_0250 + +[CH341SER_Install] +DelFiles = CH341S98.DelFiles.SYS +CopyFiles = CH341SER.CopyFiles.SYS, CH341SER.CopyFiles.DLL +AddReg = CH341SER.9X.AddReg, CH341SER.AddReg + +[CH341SER_Install.NT] +CopyFiles = CH341SER.NT.CopyFiles.SYS, CH341SER.CopyFiles.DLL +AddReg = CH341SER.NT.AddReg, CH341SER.AddReg + +[CH341SER_Install.NT.HW] +AddReg = CH341SER.NT.HW.AddReg + +[CH341SER_Inst.NTamd64] +CopyFiles = CH341SER.NT.CopyFiles.SYSA64 +AddReg = CH341SER.NT.AddReg, CH341SER.AddReg + +[CH341SER_Inst.NTamd64.HW] +AddReg = CH341SER.NT.HW.AddReg + +[CH341SER_Inst.NTia64] +CopyFiles = CH341SER.NT.CopyFiles.SYSI64 +AddReg = CH341SER.NT.AddReg, CH341SER.AddReg + +[CH341SER_Inst.NTia64.HW] +AddReg = CH341SER.NT.HW.AddReg + +[CH341S98_Install] +DelFiles = CH341S98.DelFiles.SYS +CopyFiles = CH341S98.CopyFiles.VXD, CH341SER.CopyFiles.SYS +AddReg = CH341S98.9X.AddReg, CH341S98.AddReg + +;[CH341S98_Install.NT] + +[CH341S98.DelFiles.SYS] +CH341S98.SYS, , , 1 + +[CH341SER.CopyFiles.SYS] +CH341S98.SYS, , , 2 + +[CH341SER.NT.CopyFiles.SYS] +CH341SER.SYS, , , 2 + +[CH341SER.NT.CopyFiles.SYSA64] +CH341S64.SYS, , , 2 + +[CH341SER.NT.CopyFiles.SYSI64] +;CH341I64.SYS, , , 2 + +[CH341S98.CopyFiles.VXD] +CH341SER.VXD, , , 2 + +[CH341SER.CopyFiles.DLL] +CH341PT.DLL, , , 2 +;װDLLǿѡ,DLLʶCH341˿ںͼCH341˿ڵIJ¼ + +[CH341SER.9X.AddReg] +HKR, , DevLoader, , *NTKERN +HKR, , NTMPDriver, , CH341S98.SYS + +[CH341SER.NT.AddReg] +HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" + +[CH341SER.NT.HW.AddReg] +;HKR,,"UpperFilters",0x00010000,"serenum" +;öٽڴڵļ弴豸,ʱDTRRTSź,Ҫö,뽫еķֺȥ + +[CH341S98.9X.AddReg] +HKR, , DevLoader, , *vcomm +HKR, , PortDriver, , CH341SER.VXD +HKR, , Contention, , *vcd +HKR, , ConfigDialog, , serialui.dll +HKR, , DCB, 3, 1C,00,00,00, 80,25,00,00, 11,00,00,00, 00,00,0A,00, 0A,00,08,00, 00,11,13,00, 00,00,00,00 +HKR, , PortSubClass, 1, 01 +HKR, , EnumPropPages, , "serialui.dll,EnumPropPages" +;HKR, , Enumerator, , serenum.vxd +;öٽڴڵļ弴豸,ʱDTRRTSź,Ҫö,뽫еķֺȥ + +[CH341SER.AddReg] +HKLM, SOFTWARE\WinChipHead\IC\CH341SER, WDM, 0x00010001, 0x00000034 +HKLM, SOFTWARE\WinChipHead\IC\CH341PORT, DLL, 0x00010001, 0x00000010 +HKLM, SOFTWARE\WinChipHead\IC\CH341SER, Function, , "USB=>Serial" +;HKLM, SYSTEM\CurrentControlSet\Services\CH341SER, UserRemoval, 0x00010001, 0x00000001 +;ϵͳʾȫɾUSBתSERIALӲ豸ûֹɾӲ + +[CH341S98.AddReg] +HKLM, SOFTWARE\WinChipHead\IC\CH341SER, VXD, 0x00010001, 0x00000023 + +[CH341SER_Install.NT.Services] +AddService = CH341SER, 2, CH341SER.Service +AddService = Serenum, , Serenum_Service_Inst + +[CH341SER_Inst.NTamd64.Services] +AddService = CH341SER_A64, 2, CH341SER.ServiceA64 +AddService = Serenum, , Serenum_Service_Inst + +[CH341SER_Inst.NTia64.Services] +AddService = CH341SER_I64, 2, CH341SER.ServiceI64 +AddService = Serenum, , Serenum_Service_Inst + +[CH341SER.Service] +DisplayName = "CH341SER" +ServiceType = 1 +StartType = 3 +ErrorControl = 1 +ServiceBinary = %10%\System32\Drivers\CH341SER.SYS + +[CH341SER.ServiceA64] +DisplayName = "CH341SER_A64" +ServiceType = 1 +StartType = 3 +ErrorControl = 1 +ServiceBinary = %10%\System32\Drivers\CH341S64.SYS + +[CH341SER.ServiceI64] +DisplayName = "CH341SER_I64" +ServiceType = 1 +StartType = 3 +ErrorControl = 1 +ServiceBinary = %10%\System32\Drivers\CH341I64.SYS + +[Serenum_Service_Inst] +DisplayName = "SerEnum" +ServiceType = 1 +StartType = 3 +ErrorControl = 1 +ServiceBinary = %12%\serenum.sys +LoadOrderGroup = PNP Filter + +[DestinationDirs] +DefaultDestDir = 10, System32\Drivers +CH341S98.DelFiles.SYS = 11 +CH341SER.CopyFiles.SYS = 10, System32\Drivers +CH341SER.NT.CopyFiles.SYS = 10, System32\Drivers +CH341S98.CopyFiles.VXD = 11 +CH341SER.CopyFiles.DLL = 11 +CH341SER.NT.CopyFiles.SYSA64 = 10, System32\Drivers +;CH341SER.NT.CopyFiles.SYSI64 = 10, System32\Drivers + +[SourceDisksFiles] +CH341SER.SYS = 1 +CH341S98.SYS = 1 +CH341SER.VXD = 1 +CH341PT.DLL = 1 +CH341S64.SYS = 1 +;CH341I64.SYS = 1 + +[SourceDisksNames] +1 = %DISK_NAME%, , , + +[SourceDisksNames.amd64] +1 = %DISK_NAME%, , , + +[SourceDisksNames.ia64] +1 = %DISK_NAME%, , , + +[Strings] +WinChipHead = "wch.cn" +CH341SER.DeviceDesc = "USB-SERIAL CH341" +CH341S98.DeviceDesc = "USB-SERIAL CH341" +CH340SER.DeviceDesc = "USB-SERIAL CH340" +CH341ASER.DeviceDesc = "USB-SERIAL CH341A" +CH340KSER.DeviceDesc = "USB-SERIAL CH340K" +CH330SER.DeviceDesc = "USB-SERIAL CH330" +DISK_NAME = "CH341 Serial Installation Disk" diff --git a/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.SYS b/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.SYS new file mode 100644 index 0000000..d136c25 Binary files /dev/null and b/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.SYS differ diff --git a/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.VXD b/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.VXD new file mode 100644 index 0000000..1c04d3d Binary files /dev/null and b/DP2024_SCM(单片机)/CH34x_Driver/CH341SER.VXD differ diff --git a/DP2024_SCM(单片机)/CH34x_Driver/DRVSETUP64/DRVSETUP64.exe b/DP2024_SCM(单片机)/CH34x_Driver/DRVSETUP64/DRVSETUP64.exe new file mode 100644 index 0000000..192c774 Binary files /dev/null and b/DP2024_SCM(单片机)/CH34x_Driver/DRVSETUP64/DRVSETUP64.exe differ diff --git a/DP2024_SCM(单片机)/CH34x_Driver/ReadMe.txt b/DP2024_SCM(单片机)/CH34x_Driver/ReadMe.txt new file mode 100644 index 0000000..7393b42 --- /dev/null +++ b/DP2024_SCM(单片机)/CH34x_Driver/ReadMe.txt @@ -0,0 +1,4 @@ +CH340/CH341USBתWINDOWS +ںDLL̬⼰DZ׼ʵõʹ˵ +֧32/64λ Windows 10/8.1/8/7/VISTA/XPSERVER 2016/2012/2008/20032000/ME/98ͨ΢ǩ֤ +֧USBת3ߺ9ߴڡ \ No newline at end of file diff --git a/DP2024_SCM(单片机)/CH34x_Driver/SETUP.EXE b/DP2024_SCM(单片机)/CH34x_Driver/SETUP.EXE new file mode 100644 index 0000000..3787c3e Binary files /dev/null and b/DP2024_SCM(单片机)/CH34x_Driver/SETUP.EXE differ diff --git a/DP2024_SCM(单片机)/Datasheet/74HC138.pdf b/DP2024_SCM(单片机)/Datasheet/74HC138.pdf new file mode 100644 index 0000000..b95f063 Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/74HC138.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/74HC_HCT02.pdf b/DP2024_SCM(单片机)/Datasheet/74HC_HCT02.pdf new file mode 100644 index 0000000..f3ea140 Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/74HC_HCT02.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/74HC_HCT04.pdf b/DP2024_SCM(单片机)/Datasheet/74HC_HCT04.pdf new file mode 100644 index 0000000..2bd08de Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/74HC_HCT04.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/74HC_HCT573.pdf b/DP2024_SCM(单片机)/Datasheet/74HC_HCT573.pdf new file mode 100644 index 0000000..45f82ce Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/74HC_HCT573.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/AT24C02.pdf b/DP2024_SCM(单片机)/Datasheet/AT24C02.pdf new file mode 100644 index 0000000..3f26df3 Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/AT24C02.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/CH340DS1.PDF b/DP2024_SCM(单片机)/Datasheet/CH340DS1.PDF new file mode 100644 index 0000000..5a0657c Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/CH340DS1.PDF differ diff --git a/DP2024_SCM(单片机)/Datasheet/DS1302.pdf b/DP2024_SCM(单片机)/Datasheet/DS1302.pdf new file mode 100644 index 0000000..ff68226 Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/DS1302.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/DS18B20.pdf b/DP2024_SCM(单片机)/Datasheet/DS18B20.pdf new file mode 100644 index 0000000..9b9f985 Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/DS18B20.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/LM324.pdf b/DP2024_SCM(单片机)/Datasheet/LM324.pdf new file mode 100644 index 0000000..b7552ee Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/LM324.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/LM386.pdf b/DP2024_SCM(单片机)/Datasheet/LM386.pdf new file mode 100644 index 0000000..a0a4a41 Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/LM386.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/LM555.pdf b/DP2024_SCM(单片机)/Datasheet/LM555.pdf new file mode 100644 index 0000000..29dcd78 Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/LM555.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/PCF8591.pdf b/DP2024_SCM(单片机)/Datasheet/PCF8591.pdf new file mode 100644 index 0000000..0cacc8a Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/PCF8591.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/ULN2003.pdf b/DP2024_SCM(单片机)/Datasheet/ULN2003.pdf new file mode 100644 index 0000000..49f7021 Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/ULN2003.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/USBCH341.pdf b/DP2024_SCM(单片机)/Datasheet/USBCH341.pdf new file mode 100644 index 0000000..135a5d5 Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/USBCH341.pdf differ diff --git a/DP2024_SCM(单片机)/Datasheet/红外一体化接收头8.pdf b/DP2024_SCM(单片机)/Datasheet/红外一体化接收头8.pdf new file mode 100644 index 0000000..875bf7d Binary files /dev/null and b/DP2024_SCM(单片机)/Datasheet/红外一体化接收头8.pdf differ diff --git a/DP2024_SCM(单片机)/SCH_V31.pdf b/DP2024_SCM(单片机)/SCH_V31.pdf new file mode 100644 index 0000000..83efc14 Binary files /dev/null and b/DP2024_SCM(单片机)/SCH_V31.pdf differ diff --git a/DP2024_SCM(单片机)/SEG_TABLE.pdf b/DP2024_SCM(单片机)/SEG_TABLE.pdf new file mode 100644 index 0000000..a96d9b9 Binary files /dev/null and b/DP2024_SCM(单片机)/SEG_TABLE.pdf differ diff --git a/DP2024_SCM(单片机)/STC15_DS.pdf b/DP2024_SCM(单片机)/STC15_DS.pdf new file mode 100644 index 0000000..d89d7ed Binary files /dev/null and b/DP2024_SCM(单片机)/STC15_DS.pdf differ diff --git a/DP2024_SCM(单片机)/Tools/PDF阅读器/SumatraPDF-3.4.6-64-install.exe b/DP2024_SCM(单片机)/Tools/PDF阅读器/SumatraPDF-3.4.6-64-install.exe new file mode 100644 index 0000000..af61b7a Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/PDF阅读器/SumatraPDF-3.4.6-64-install.exe differ diff --git a/DP2024_SCM(单片机)/Tools/STC-ISP/stc-isp-15xx-v6.86r.exe b/DP2024_SCM(单片机)/Tools/STC-ISP/stc-isp-15xx-v6.86r.exe new file mode 100644 index 0000000..36ee4c6 Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/STC-ISP/stc-isp-15xx-v6.86r.exe differ diff --git a/DP2024_SCM(单片机)/Tools/STC-ISP/stc-isp-15xx-v6.87H.exe b/DP2024_SCM(单片机)/Tools/STC-ISP/stc-isp-15xx-v6.87H.exe new file mode 100644 index 0000000..1d78a97 Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/STC-ISP/stc-isp-15xx-v6.87H.exe differ diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/AccessPort.exe b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/AccessPort.exe new file mode 100644 index 0000000..0d0d2fa Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/AccessPort.exe differ diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/AccessPort.ini b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/AccessPort.ini new file mode 100644 index 0000000..6401ae1 --- /dev/null +++ b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/AccessPort.ini @@ -0,0 +1,23 @@ +[Setting] +Language=Chinese(Simplified) +[AccessPort] +SerialPort=5 +BaudRate=9600 +ParityBit=N +DataBit=8 +StopBit=0 +FlowControl=0 +BufferSize=8192 +SendCycle=1000 +BytesPerLine=16 +CopyHexDumpMode=0 +SelectCharMode=0 +MaxLogSize_MB=6 +TextColor=0 +BgColor=16777215 +SysParameter=18354801 +SendFile= +PredefDataFile= +AutoAckDataFile= +Font_Desc=-11:0:0:0:400:0:0:0:0:1:2:0:34 +Font_Name=Lucida Sans Unicode diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Apsm.sys b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Apsm.sys new file mode 100644 index 0000000..6e1d66e Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Apsm.sys differ diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Apsm_x64.sys b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Apsm_x64.sys new file mode 100644 index 0000000..81aacae Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Apsm_x64.sys differ diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/apchs.ini b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/apchs.ini new file mode 100644 index 0000000..d4f849d Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/apchs.ini differ diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/apcht.ini b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/apcht.ini new file mode 100644 index 0000000..4c6ba26 Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/apcht.ini differ diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/apeng.ini b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/apeng.ini new file mode 100644 index 0000000..c0441d7 Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/apeng.ini differ diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/aprus.ini b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/aprus.ini new file mode 100644 index 0000000..931fbbf Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/Language/aprus.ini differ diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/license.txt b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/license.txt new file mode 100644 index 0000000..8969d19 --- /dev/null +++ b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/license.txt @@ -0,0 +1,52 @@ +================================================== +SUDT ACCESSPORT END-USER LICENSE AGREEMENT +Copyright (C) 2002-2011 SUDT Studio, +All Rights Reserved. +================================================== + +END-USER LICENSE AGREEMENT + +This End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and the mentioned author of this Software for the software product identified above, which includes computer software and may include associated media, printed materials, and "online" +or electronic documentation ("SOFTWARE PRODUCT"). By installing, copying, or otherwise using the SOFTWARE PRODUCT, you agree to be bound by the terms of this EULA. If you do not agree to the terms of this EULA, do not install or use the SOFTWARE PRODUCT. + +SOFTWARE PRODUCT LICENSE +The SOFTWARE PRODUCT is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The SOFTWARE PRODUCT is licensed, not sold. + +1. GRANT OF LICENSE. This EULA grants you the following rights: +Installation and Use. You may install and use an unlimited number of copies of the SOFTWARE PRODUCT. + +Reproduction and Distribution. You may reproduce and distribute an unlimited number of copies of the SOFTWARE PRODUCT; provided that each copy shall be a true and complete copy, including all copyright and trademark notices, and shall be accompanied by a copy of this EULA. Copies of the SOFTWARE PRODUCT may be distributed as a standalone product or included with your own product. + +2. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS. + +Limitations on Reverse Engineering, Decompilation, and Disassembly. You may not reverse engineer, decompile, or disassemble the SOFTWARE PRODUCT, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation. + +Separation of Components. +The SOFTWARE PRODUCT is licensed as a single product. Its component parts may not be separated for use on more than one computer. + +Software Transfer. +You may permanently transfer all of your rights under this EULA, provided the recipient agrees to the terms of this EULA. + +Termination. +Without prejudice to any other rights, the Author of this Software may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the SOFTWARE PRODUCT and all of its component parts. + +Distribution. +The SOFTWARE PRODUCT may not be sold or be included in a product or package which intends to receive benefits through the inclusion of the SOFTWARE PRODUCT. The SOFTWARE PRODUCT may be included in any free or non-profit packages or products. + +3. COPYRIGHT. +All title and copyrights in and to the SOFTWARE PRODUCT (including but not limited to any images, photographs, animations, video, audio, music, text, and "applets" incorporated into the SOFTWARE PRODUCT), the accompanying printed materials, and any copies of the SOFTWARE PRODUCT are owned by the Author of this Software. The SOFTWARE PRODUCT is protected by copyright laws +and international treaty provisions. Therefore, you must treat the SOFTWARE PRODUCT like any other copyrighted material except that you may install the SOFTWARE PRODUCT on a single computer provided you keep the original solely for backup or archival purposes. + +LIMITED WARRANTY + +NO WARRANTIES. +The Author of this Software expressly disclaims any warranty for the SOFTWARE PRODUCT. The SOFTWARE PRODUCT and any related documentation is provided "as is" without warranty of any kind, either express or implied, including, without limitation, the implied warranties or merchantability, fitness for a particular purpose, or noninfringement. The entire risk arising out of use +or performance of the SOFTWARE PRODUCT remains with you. + +NO LIABILITY FOR DAMAGES. +In no event shall the author of this Software be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use this product, even if the Author of this Software has been advised of the possibility of such damages. + +============================================= +Author : Fred Chow +Email : support@sudt.com +WebSite : http://www.sudt.com \ No newline at end of file diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/readme_en_US.txt b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/readme_en_US.txt new file mode 100644 index 0000000..d110fc4 Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/readme_en_US.txt differ diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/readme_zh_CN.txt b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/readme_zh_CN.txt new file mode 100644 index 0000000..b94d2eb Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/readme_zh_CN.txt differ diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/readme_zh_TW.txt b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/readme_zh_TW.txt new file mode 100644 index 0000000..76dc539 Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/串口调试助手/AccessPort/readme_zh_TW.txt differ diff --git a/DP2024_SCM(单片机)/Tools/串口调试助手/ComAssistant.exe b/DP2024_SCM(单片机)/Tools/串口调试助手/ComAssistant.exe new file mode 100644 index 0000000..143037b Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/串口调试助手/ComAssistant.exe differ diff --git a/DP2024_SCM(单片机)/Tools/代码阅读器-编辑器_VSCode/VSCodeUserSetup-x64-1.76.0.exe b/DP2024_SCM(单片机)/Tools/代码阅读器-编辑器_VSCode/VSCodeUserSetup-x64-1.76.0.exe new file mode 100644 index 0000000..6a4694f Binary files /dev/null and b/DP2024_SCM(单片机)/Tools/代码阅读器-编辑器_VSCode/VSCodeUserSetup-x64-1.76.0.exe differ diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..31030c1 --- /dev/null +++ b/README.en.md @@ -0,0 +1,3 @@ +# 蓝桥杯学习 + +I prepare the learning code of the 15th Blue Bridge Cup. diff --git a/README.md b/README.md new file mode 100644 index 0000000..93c4686 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# 蓝桥杯学习 + +本人准备第十五届蓝桥杯的学习代码 \ No newline at end of file diff --git a/仿真/Project Backups/蓝桥杯仿真图 - V2 [Autosaved].pdsprj b/仿真/Project Backups/蓝桥杯仿真图 - V2 [Autosaved].pdsprj new file mode 100644 index 0000000..351124b Binary files /dev/null and b/仿真/Project Backups/蓝桥杯仿真图 - V2 [Autosaved].pdsprj differ diff --git a/仿真/蓝桥杯仿真图 - V2.pdsprj b/仿真/蓝桥杯仿真图 - V2.pdsprj new file mode 100644 index 0000000..2fa8aba Binary files /dev/null and b/仿真/蓝桥杯仿真图 - V2.pdsprj differ diff --git a/仿真/蓝桥杯仿真图 - V2.pdsprj.DESKTOP-8DLTU76.zuolan.workspace b/仿真/蓝桥杯仿真图 - V2.pdsprj.DESKTOP-8DLTU76.zuolan.workspace new file mode 100644 index 0000000..5d827fe --- /dev/null +++ b/仿真/蓝桥杯仿真图 - V2.pdsprj.DESKTOP-8DLTU76.zuolan.workspace @@ -0,0 +1,30 @@ + + + + 2c0000000200000003000000ffffffffffffffffffffffffffffffffda0000001e000000a8060000d9030000 + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/仿真/蓝桥杯仿真图 - V2.pdsprj.HP-HAZE.haze.workspace b/仿真/蓝桥杯仿真图 - V2.pdsprj.HP-HAZE.haze.workspace new file mode 100644 index 0000000..b78d4de --- /dev/null +++ b/仿真/蓝桥杯仿真图 - V2.pdsprj.HP-HAZE.haze.workspace @@ -0,0 +1,124 @@ + + + + 2c00000002000000020000000083ffff0083ffffffffffffffffffffe400000018000000f2060000fc030000 + + + + + + + + + + + + + + + + + + + + + + + + + + + -22 + No + 100 + 100 + + + + + 100 + No + Yes + 100 + 100 + Yes + Yes + Yes + Yes + 0 + 100 + 100 + 100 + 100 + 0 + + + + + + + + 2 + Yes + 2 + Yes + Yes + 00000000 + + + + + 2 + Yes + 2 + Yes + Yes + 00000080 + + + + + 2 + Yes + 2 + Yes + Yes + 00000000 + + + + + 2 + Yes + 2 + Yes + Yes + 00000000 + + + + + 2 + Yes + 2 + Yes + Yes + 00000000 + + + + + + + + 2 + Yes + 2 + Yes + Yes + 00000000 + + + + + diff --git a/模板/zuolan_v1标志位.zip b/模板/zuolan_v1标志位.zip new file mode 100644 index 0000000..fd30275 Binary files /dev/null and b/模板/zuolan_v1标志位.zip differ diff --git a/模板/zuolan_v1标志位/.vscode/settings.json b/模板/zuolan_v1标志位/.vscode/settings.json new file mode 100644 index 0000000..efa526e --- /dev/null +++ b/模板/zuolan_v1标志位/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "main.h": "c", + "onewire.h": "c", + "string.h": "c", + "led.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp", + "key.h": "c", + "seg.h": "c", + "intrins.h": "c", + "iic.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ul.h": "c", + "init.h": "c" + } +} diff --git a/模板/zuolan_v1标志位/doc/蓝桥杯单片机模版建立_v1标志位.pdf b/模板/zuolan_v1标志位/doc/蓝桥杯单片机模版建立_v1标志位.pdf new file mode 100644 index 0000000..dbc35cb Binary files /dev/null and b/模板/zuolan_v1标志位/doc/蓝桥杯单片机模版建立_v1标志位.pdf differ diff --git a/模板/zuolan_v1标志位/driver/ds1302.c b/模板/zuolan_v1标志位/driver/ds1302.c new file mode 100644 index 0000000..0b53c63 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/ds1302.c @@ -0,0 +1,96 @@ +/* # DS1302代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. + 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "ds1302.h" + +#include "intrins.h" +sbit SDA = P2 ^ 3; +sbit RST = P1 ^ 3; +sbit SCK = P1 ^ 7; +// +void Write_Ds1302(unsigned char temp) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + SCK = 0; + SDA = temp & 0x01; + temp >>= 1; + SCK = 1; + } +} + +// +void Write_Ds1302_Byte(unsigned char address, unsigned char dat) +{ + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST = 0; +} + +// +unsigned char Read_Ds1302_Byte(unsigned char address) +{ + unsigned char i, temp = 0x00; + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + for (i = 0; i < 8; i++) + { + SCK = 0; + temp >>= 1; + if (SDA) + temp |= 0x80; + SCK = 1; + } + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + SCK = 1; + _nop_(); + SDA = 0; + _nop_(); + SDA = 1; + _nop_(); + return (temp); +} +// 十进制 11 -> 0x11 +void Set_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + unsigned char temp; + Write_Ds1302_Byte(0x8e, 0x00); + Write_Ds1302_Byte(0x80, 0x80); + for (i = 0; i < 3; i++) + { + + temp = (ucRtc[i] / 10) * 16 + ucRtc[i] % 10; + Write_Ds1302_Byte(0x84 - 2 * i, temp); + } + Write_Ds1302_Byte(0x8e, 0x80); +} +// 十进制 0x11 -> 11 +void Read_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + unsigned char temp; + for (i = 0; i < 3; i++) + { + temp = Read_Ds1302_Byte(0x85 - 2 * i); + ucRtc[i] = temp / 16 * 10 + temp % 16; + } +} \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/ds1302.h b/模板/zuolan_v1标志位/driver/ds1302.h new file mode 100644 index 0000000..4aa21dd --- /dev/null +++ b/模板/zuolan_v1标志位/driver/ds1302.h @@ -0,0 +1,3 @@ +#include +void Set_Rtc(unsigned char *ucRtc); +void Read_Rtc(unsigned char *ucRtc); \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/iic.c b/模板/zuolan_v1标志位/driver/iic.c new file mode 100644 index 0000000..455dbf9 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/iic.c @@ -0,0 +1,178 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. + 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" + +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) { + do { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) { + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) { + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) { + unsigned char i; + + for (i = 0; i < 8; i++) { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) { + sda = 1; + } else { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) { + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) { + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) { + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +unsigned char Ad_Read(unsigned char addr) { + unsigned char temp; + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + + I2CStart(); + I2CSendByte(0x91); + I2CWaitAck(); + temp = I2CReceiveByte(); + I2CSendAck(1); + I2CStop(); + return temp; +} +// 数字电压255->5V +void Da_Write(unsigned char dat) { + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); +} +void EEPROM_Write(unsigned char *str, unsigned char addr, unsigned char num) { + I2CStart(); + I2CSendByte(0xa0); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + + while (num--) { + I2CSendByte(*str++); + I2CWaitAck(); + I2C_Delay(200); + } + I2CStop(); + I2C_Delay(255); + I2C_Delay(255); + I2C_Delay(255); + I2C_Delay(255); +} +void EEPROM_Read(unsigned char *str, unsigned char addr, unsigned char num) { + I2CStart(); + I2CSendByte(0xa0); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + + I2CStart(); + I2CSendByte(0xa1); + I2CWaitAck(); + while (num--) { + *str++ = I2CReceiveByte(); + if (num) + I2CSendAck(0); + else + I2CSendAck(1); + } + I2CStop(); +} \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/iic.h b/模板/zuolan_v1标志位/driver/iic.h new file mode 100644 index 0000000..03fed62 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/iic.h @@ -0,0 +1,5 @@ +#include +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); +void EEPROM_Write(unsigned char *str, unsigned char addr, unsigned char num); +void EEPROM_Read(unsigned char *str, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/init.c b/模板/zuolan_v1标志位/driver/init.c new file mode 100644 index 0000000..a2f0026 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/init.c @@ -0,0 +1,10 @@ +#include "init.h" +void System_Init() { + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/init.h b/模板/zuolan_v1标志位/driver/init.h new file mode 100644 index 0000000..972766d --- /dev/null +++ b/模板/zuolan_v1标志位/driver/init.h @@ -0,0 +1,2 @@ +#include +void System_Init(); \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/key.c b/模板/zuolan_v1标志位/driver/key.c new file mode 100644 index 0000000..8ee9bf1 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/key.c @@ -0,0 +1,45 @@ +#include "key.h" +unsigned char Key_Read() { + unsigned char temp = 0; + ET1 = 0; + + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) temp = 4; + if (P32 == 0) temp = 5; + if (P31 == 0) temp = 6; + if (P30 == 0) temp = 7; + + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) temp = 8; + if (P32 == 0) temp = 9; + if (P31 == 0) temp = 10; + if (P30 == 0) temp = 11; + + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) temp = 12; + if (P32 == 0) temp = 13; + if (P31 == 0) temp = 14; + if (P30 == 0) temp = 15; + + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) temp = 16; + if (P32 == 0) temp = 17; + if (P31 == 0) temp = 18; + if (P30 == 0) temp = 19; + + P3 = 0xff; + ET1 = 1; + return temp; +} \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/key.h b/模板/zuolan_v1标志位/driver/key.h new file mode 100644 index 0000000..af100f8 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/key.h @@ -0,0 +1,2 @@ +#include +unsigned char Key_Read(); \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/led.c b/模板/zuolan_v1标志位/driver/led.c new file mode 100644 index 0000000..415b214 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/led.c @@ -0,0 +1,63 @@ +#include "led.h" +/// @brief Ledɨ +/// @param addr ҪƵLedĵַ0-7 +/// @param enable ƸõַLedǷ +void Led_Disp(unsigned char addr, unsigned char enable) { + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} + +unsigned char temp_0 = 0x00; +unsigned char temp_old_0 = 0xff; +/// @brief +/// @param enable +void Beep(bit enable) { + if (enable) + temp_0 |= 0x40; + else + temp_0 &= ~(0x40); + if (temp_0 != temp_old_0) { + P0 = temp_0; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old_0 = temp_0; + } +} +/// @brief ̵ +/// @param enable +void Relay(bit enable) { + if (enable) + temp_0 |= 0x10; + else + temp_0 &= ~(0x10); + if (temp_0 != temp_old_0) { + P0 = temp_0; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old_0 = temp_0; + } +} +/// @brief MOTOR +/// @param enable +void MOTOR(bit enable) { + if (enable) + temp_0 |= 0x20; + else + temp_0 &= ~(0x20); + if (temp_0 != temp_old_0) { + P0 = temp_0; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old_0 = temp_0; + } +} \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/led.h b/模板/zuolan_v1标志位/driver/led.h new file mode 100644 index 0000000..dad8b90 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/led.h @@ -0,0 +1,5 @@ +#include +void Led_Disp(unsigned char addr, unsigned char enable); +void Beep(bit enable); +void Relay(bit enable); +void MOTOR(bit enable); \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/onewire.c b/模板/zuolan_v1标志位/driver/onewire.c new file mode 100644 index 0000000..1ec4ce5 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/onewire.c @@ -0,0 +1,77 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. + 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +sbit DQ = P1 ^ 4; +// +void Delay_OneWire(unsigned int t) { + unsigned char i; + while (t--) { + for (i = 0; i < 12; i++); + } +} + +// +void Write_DS18B20(unsigned char dat) { + unsigned char i; + for (i = 0; i < 8; i++) { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) { + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) { + DQ = 0; + dat >>= 1; + DQ = 1; + if (DQ) { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) { + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() { + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); + Write_DS18B20(0x44); + + Delay_OneWire(200); + + init_ds18b20(); + Write_DS18B20(0xcc); + Write_DS18B20(0xbe); + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} diff --git a/模板/zuolan_v1标志位/driver/onewire.h b/模板/zuolan_v1标志位/driver/onewire.h new file mode 100644 index 0000000..7cce938 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/onewire.h @@ -0,0 +1,2 @@ +#include +float rd_temperature(); \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/seg.c b/模板/zuolan_v1标志位/driver/seg.c new file mode 100644 index 0000000..2602563 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/seg.c @@ -0,0 +1,22 @@ +#include "seg.h" +// 0-9 +// A +code unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, + 0x82, 0xf8, 0x80, 0x90, 0xff, 0x88}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) { + // + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; + + // λѡ + P0 = 0x01 << wela; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡ + P0 = seg_dula[dula]; + if (point) P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/seg.h b/模板/zuolan_v1标志位/driver/seg.h new file mode 100644 index 0000000..27877f5 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/seg.h @@ -0,0 +1,2 @@ +#include +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/uart.c b/模板/zuolan_v1标志位/driver/uart.c new file mode 100644 index 0000000..d1fd99d --- /dev/null +++ b/模板/zuolan_v1标志位/driver/uart.c @@ -0,0 +1,18 @@ +#include "uart.h" +void Uart1_Init(void) // 9600bps@12.000MHz +{ + SCON = 0x50; // 8λ,ɱ䲨 + AUXR |= 0x01; // 1ѡʱ2Ϊʷ + AUXR |= 0x04; // ʱʱ1Tģʽ + T2L = 0xC7; // öʱʼֵ + T2H = 0xFE; // öʱʼֵ + AUXR |= 0x10; // ʱ2ʼʱ + ES = 1; // ʹܴ1ж + EA = 1; +} +extern char putchar(char ch) { + SBUF = ch; + while (TI == 0); + TI = 0; + return ch; +} \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/uart.h b/模板/zuolan_v1标志位/driver/uart.h new file mode 100644 index 0000000..e5340e3 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/uart.h @@ -0,0 +1,4 @@ +#include + +#include "stdio.h" +void Uart1_Init(void); \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/ul.c b/模板/zuolan_v1标志位/driver/ul.c new file mode 100644 index 0000000..2b56e03 --- /dev/null +++ b/模板/zuolan_v1标志位/driver/ul.c @@ -0,0 +1,46 @@ +#include "ul.h" + +#include "intrins.h" +sbit Tx = P1 ^ 0; +sbit Rx = P1 ^ 1; +void Delay12us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 33; // 38 + while (--i); +} +void Ut_Wave_Init() { + unsigned char i; + for (i = 0; i < 8; i++) { + Tx = 1; + Delay12us(); + Tx = 0; + Delay12us(); + } +} +unsigned char Ut_Wave_Data() { + unsigned int time; + CH = CL = 0; + CMOD = 0x00; + + EA = 0; + Ut_Wave_Init(); + EA = 1; + + CR = 1; + while (Rx && !CF); + CR = 0; + if (!CF) { // us -> s 10^(-6) + // m -> cm 10^2 + // 10^(-4) + // L = V*T/2=340*time/2=170*10^(-4)*time=0.017*time + time = CH << 8 | CL; + return (0.017 * time + 3); + } else { + CF = 0; + return 0; + } +} \ No newline at end of file diff --git a/模板/zuolan_v1标志位/driver/ul.h b/模板/zuolan_v1标志位/driver/ul.h new file mode 100644 index 0000000..11cf61f --- /dev/null +++ b/模板/zuolan_v1标志位/driver/ul.h @@ -0,0 +1,2 @@ +#include +unsigned char Ut_Wave_Data(); \ No newline at end of file diff --git a/模板/zuolan_v1标志位/prj/Listings/STARTUP.lst b/模板/zuolan_v1标志位/prj/Listings/STARTUP.lst new file mode 100644 index 0000000..aaf5b7f --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/STARTUP.lst @@ -0,0 +1,253 @@ +A51 MACRO ASSEMBLER STARTUP 03/10/2025 18:03:53 PAGE 1 + + +MACRO ASSEMBLER A51 V8.2.7.0 +OBJECT MODULE PLACED IN .\Objects\STARTUP.obj +ASSEMBLER INVOKED BY: D:\Keil_v5\C51\BIN\A51.EXE STARTUP.A51 SET(SMALL) DEBUG PRINT(.\Listings\STARTUP.lst) OBJECT(.\Obj + ects\STARTUP.obj) EP + +LOC OBJ LINE SOURCE + + 1 $nomod51 + 2 ;------------------------------------------------------------------------------ + 3 ; This file is part of the C51 Compiler package + 4 ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc. + 5 ; Version 8.01 + 6 ; + 7 ; *** <<< Use Configuration Wizard in Context Menu >>> *** + 8 ;------------------------------------------------------------------------------ + 9 ; STARTUP.A51: This code is executed after processor reset. + 10 ; + 11 ; To translate this file use A51 with the following invocation: + 12 ; + 13 ; A51 STARTUP.A51 + 14 ; + 15 ; To link the modified STARTUP.OBJ file to your application use the following + 16 ; Lx51 invocation: + 17 ; + 18 ; Lx51 your object file list, STARTUP.OBJ controls + 19 ; + 20 ;------------------------------------------------------------------------------ + 21 ; + 22 ; User-defined Power-On Initialization of Memory + 23 ; + 24 ; With the following EQU statements the initialization of memory + 25 ; at processor reset can be defined: + 26 ; + 27 ; IDATALEN: IDATA memory size <0x0-0x100> + 28 ; Note: The absolute start-address of IDATA memory is always 0 + 29 ; The IDATA space overlaps physically the DATA and BIT areas. + 0080 30 IDATALEN EQU 80H + 31 ; + 32 ; XDATASTART: XDATA memory start address <0x0-0xFFFF> + 33 ; The absolute start address of XDATA memory + 0000 34 XDATASTART EQU 0 + 35 ; + 36 ; XDATALEN: XDATA memory size <0x0-0xFFFF> + 37 ; The length of XDATA memory in bytes. + 0000 38 XDATALEN EQU 0 + 39 ; + 40 ; PDATASTART: PDATA memory start address <0x0-0xFFFF> + 41 ; The absolute start address of PDATA memory + 0000 42 PDATASTART EQU 0H + 43 ; + 44 ; PDATALEN: PDATA memory size <0x0-0xFF> + 45 ; The length of PDATA memory in bytes. + 0000 46 PDATALEN EQU 0H + 47 ; + 48 ; + 49 ;------------------------------------------------------------------------------ + 50 ; + 51 ; Reentrant Stack Initialization + 52 ; + 53 ; The following EQU statements define the stack pointer for reentrant + 54 ; functions and initialized it: + 55 ; + 56 ; Stack Space for reentrant functions in the SMALL model. + 57 ; IBPSTACK: Enable SMALL model reentrant stack + A51 MACRO ASSEMBLER STARTUP 03/10/2025 18:03:53 PAGE 2 + + 58 ; Stack space for reentrant functions in the SMALL model. + 0000 59 IBPSTACK EQU 0 ; set to 1 if small reentrant is used. + 60 ; IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF> + 61 ; Set the top of the stack to the highest location. + 0100 62 IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 + 63 ; + 64 ; + 65 ; Stack Space for reentrant functions in the LARGE model. + 66 ; XBPSTACK: Enable LARGE model reentrant stack + 67 ; Stack space for reentrant functions in the LARGE model. + 0000 68 XBPSTACK EQU 0 ; set to 1 if large reentrant is used. + 69 ; XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF> + 70 ; Set the top of the stack to the highest location. + 0000 71 XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1 + 72 ; + 73 ; + 74 ; Stack Space for reentrant functions in the COMPACT model. + 75 ; PBPSTACK: Enable COMPACT model reentrant stack + 76 ; Stack space for reentrant functions in the COMPACT model. + 0000 77 PBPSTACK EQU 0 ; set to 1 if compact reentrant is used. + 78 ; + 79 ; PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF> + 80 ; Set the top of the stack to the highest location. + 0100 81 PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 + 82 ; + 83 ; + 84 ;------------------------------------------------------------------------------ + 85 ; + 86 ; Memory Page for Using the Compact Model with 64 KByte xdata RAM + 87 ; Compact Model Page Definition + 88 ; + 89 ; Define the XDATA page used for PDATA variables. + 90 ; PPAGE must conform with the PPAGE set in the linker invocation. + 91 ; + 92 ; Enable pdata memory page initalization + 0000 93 PPAGEENABLE EQU 0 ; set to 1 if pdata object are used. + 94 ; + 95 ; PPAGE number <0x0-0xFF> + 96 ; uppermost 256-byte address of the page used for PDATA variables. + 0000 97 PPAGE EQU 0 + 98 ; + 99 ; SFR address which supplies uppermost address byte <0x0-0xFF> + 100 ; most 8051 variants use P2 as uppermost address byte + 00A0 101 PPAGE_SFR DATA 0A0H + 102 ; + 103 ; + 104 ;------------------------------------------------------------------------------ + 105 + 106 ; Standard SFR Symbols + 00E0 107 ACC DATA 0E0H + 00F0 108 B DATA 0F0H + 0081 109 SP DATA 81H + 0082 110 DPL DATA 82H + 0083 111 DPH DATA 83H + 112 + 113 NAME ?C_STARTUP + 114 + 115 + 116 ?C_C51STARTUP SEGMENT CODE + 117 ?STACK SEGMENT IDATA + 118 +---- 119 RSEG ?STACK +0000 120 DS 1 + 121 + 122 EXTRN CODE (?C_START) + 123 PUBLIC ?C_STARTUP + A51 MACRO ASSEMBLER STARTUP 03/10/2025 18:03:53 PAGE 3 + + 124 +---- 125 CSEG AT 0 +0000 020000 F 126 ?C_STARTUP: LJMP STARTUP1 + 127 +---- 128 RSEG ?C_C51STARTUP + 129 +0000 130 STARTUP1: + 131 + 132 IF IDATALEN <> 0 +0000 787F 133 MOV R0,#IDATALEN - 1 +0002 E4 134 CLR A +0003 F6 135 IDATALOOP: MOV @R0,A +0004 D8FD 136 DJNZ R0,IDATALOOP + 137 ENDIF + 138 + 139 IF XDATALEN <> 0 + MOV DPTR,#XDATASTART + MOV R7,#LOW (XDATALEN) + IF (LOW (XDATALEN)) <> 0 + MOV R6,#(HIGH (XDATALEN)) +1 + ELSE + MOV R6,#HIGH (XDATALEN) + ENDIF + CLR A + XDATALOOP: MOVX @DPTR,A + INC DPTR + DJNZ R7,XDATALOOP + DJNZ R6,XDATALOOP + ENDIF + 153 + 154 IF PPAGEENABLE <> 0 + MOV PPAGE_SFR,#PPAGE + ENDIF + 157 + 158 IF PDATALEN <> 0 + MOV R0,#LOW (PDATASTART) + MOV R7,#LOW (PDATALEN) + CLR A + PDATALOOP: MOVX @R0,A + INC R0 + DJNZ R7,PDATALOOP + ENDIF + 166 + 167 IF IBPSTACK <> 0 + EXTRN DATA (?C_IBP) + + MOV ?C_IBP,#LOW IBPSTACKTOP + ENDIF + 172 + 173 IF XBPSTACK <> 0 + EXTRN DATA (?C_XBP) + + MOV ?C_XBP,#HIGH XBPSTACKTOP + MOV ?C_XBP+1,#LOW XBPSTACKTOP + ENDIF + 179 + 180 IF PBPSTACK <> 0 + EXTRN DATA (?C_PBP) + MOV ?C_PBP,#LOW PBPSTACKTOP + ENDIF + 184 +0006 758100 F 185 MOV SP,#?STACK-1 + 186 + 187 ; This code is required if you use L51_BANK.A51 with Banking Mode 4 + 188 ; Code Banking + 189 ; Select Bank 0 for L51_BANK.A51 Mode 4 + A51 MACRO ASSEMBLER STARTUP 03/10/2025 18:03:53 PAGE 4 + + 190 + + + + + 195 ; +0009 020000 F 196 LJMP ?C_START + 197 + 198 END + A51 MACRO ASSEMBLER STARTUP 03/10/2025 18:03:53 PAGE 5 + +SYMBOL TABLE LISTING +------ ----- ------- + + +N A M E T Y P E V A L U E ATTRIBUTES + +?C_C51STARTUP. . . C SEG 000CH REL=UNIT +?C_START . . . . . C ADDR ----- EXT +?C_STARTUP . . . . C ADDR 0000H A +?STACK . . . . . . I SEG 0001H REL=UNIT +ACC. . . . . . . . D ADDR 00E0H A +B. . . . . . . . . D ADDR 00F0H A +DPH. . . . . . . . D ADDR 0083H A +DPL. . . . . . . . D ADDR 0082H A +IBPSTACK . . . . . N NUMB 0000H A +IBPSTACKTOP. . . . N NUMB 0100H A +IDATALEN . . . . . N NUMB 0080H A +IDATALOOP. . . . . C ADDR 0003H R SEG=?C_C51STARTUP +PBPSTACK . . . . . N NUMB 0000H A +PBPSTACKTOP. . . . N NUMB 0100H A +PDATALEN . . . . . N NUMB 0000H A +PDATASTART . . . . N NUMB 0000H A +PPAGE. . . . . . . N NUMB 0000H A +PPAGEENABLE. . . . N NUMB 0000H A +PPAGE_SFR. . . . . D ADDR 00A0H A +SP . . . . . . . . D ADDR 0081H A +STARTUP1 . . . . . C ADDR 0000H R SEG=?C_C51STARTUP +XBPSTACK . . . . . N NUMB 0000H A +XBPSTACKTOP. . . . N NUMB 0000H A +XDATALEN . . . . . N NUMB 0000H A +XDATASTART . . . . N NUMB 0000H A + + +REGISTER BANK(S) USED: 0 + + +ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Listings/demo_zuolan.m51 b/模板/zuolan_v1标志位/prj/Listings/demo_zuolan.m51 new file mode 100644 index 0000000..4d82487 --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/demo_zuolan.m51 @@ -0,0 +1,1361 @@ +BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.4.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\STARTUP.obj, .\Objects\main.obj, .\Objects\ds1302.obj, .\Objects\iic.obj, .\Object +>> s\init.obj, .\Objects\key.obj, .\Objects\led.obj, .\Objects\onewire.obj, .\Objects\seg.obj, .\Objects\uart.obj, .\Obj +>> ects\ul.obj TO .\Objects\demo_zuolan PRINT (.\Listings\demo_zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\STARTUP.obj (?C_STARTUP) + .\Objects\main.obj (MAIN) + .\Objects\ds1302.obj (DS1302) + .\Objects\iic.obj (IIC) + .\Objects\init.obj (INIT) + .\Objects\key.obj (KEY) + .\Objects\led.obj (LED) + .\Objects\onewire.obj (ONEWIRE) + .\Objects\seg.obj (SEG) + .\Objects\uart.obj (UART) + .\Objects\ul.obj (UL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) + + +LINK MAP OF MODULE: .\Objects\demo_zuolan (?C_STARTUP) + + + 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 ?DT?_EEPROM_WRITE?IIC + DATA 000DH 0005H UNIT ?DT?_EEPROM_READ?IIC + DATA 0012H 0004H UNIT ?DT?LED + DATA 0016H 0004H UNIT _DATA_GROUP_ + DATA 001AH 0003H UNIT ?DT?_READ_RTC?DS1302 + 001DH 0003H *** GAP *** + BIT 0020H.0 0000H.1 UNIT ?BI?MAIN + BIT 0020H.1 0000H.1 UNIT ?BI?BEEP?LED + BIT 0020H.2 0000H.1 UNIT ?BI?RELAY?LED + BIT 0020H.3 0000H.1 UNIT ?BI?MOTOR?LED + BIT 0020H.4 0000H.1 UNIT _BIT_GROUP_ + 0020H.5 0000H.3 *** GAP *** + DATA 0021H 0030H UNIT ?DT?MAIN + IDATA 0051H 0001H UNIT ?STACK + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 2 + + + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 001BH 0003H ABSOLUTE + CODE 001EH 0001H UNIT ?PR?DATA_PROC?MAIN + CODE 001FH 0001H UNIT ?PR?SEG_PROC?MAIN + CODE 0020H 0001H UNIT ?PR?LED_PROC?MAIN + 0021H 0002H *** GAP *** + CODE 0023H 0003H ABSOLUTE + CODE 0026H 03C6H UNIT ?C?LIB_CODE + CODE 03ECH 0095H UNIT ?PR?TIMER1_ISR?MAIN + CODE 0481H 008CH UNIT ?C_C51STARTUP + CODE 050DH 007AH UNIT ?PR?KEY_READ?KEY + CODE 0587H 004FH UNIT ?PR?_SET_RTC?DS1302 + CODE 05D6H 0046H UNIT ?PR?_EEPROM_WRITE?IIC + CODE 061CH 0046H UNIT ?PR?UT_WAVE_DATA?UL + CODE 0662H 0042H UNIT ?PR?_EEPROM_READ?IIC + CODE 06A4H 003FH UNIT ?PR?_SEG_DISP?SEG + CODE 06E3H 003BH UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 071EH 003AH UNIT ?PR?_LED_DISP?LED + CODE 0758H 0034H UNIT ?PR?_READ_DS1302_BYTE?DS1302 + CODE 078CH 0034H UNIT ?PR?_READ_RTC?DS1302 + CODE 07C0H 0030H UNIT ?C_INITSEG + CODE 07F0H 002DH UNIT ?PR?UART1_ISR?MAIN + CODE 081DH 002CH UNIT ?PR?MAIN?MAIN + CODE 0849H 002CH UNIT ?PR?_I2CSENDBYTE?IIC + CODE 0875H 0027H UNIT ?PR?KEY_PROC?MAIN + CODE 089CH 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 08C3H 0025H UNIT ?PR?_AD_READ?IIC + CODE 08E8H 0024H UNIT ?PR?I2CWAITACK?IIC + CODE 090CH 0023H UNIT ?PR?BEEP?LED + CODE 092FH 0023H UNIT ?PR?RELAY?LED + CODE 0952H 0023H UNIT ?PR?MOTOR?LED + CODE 0975H 0020H UNIT ?PR?UART_PROC?MAIN + CODE 0995H 001EH UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 09B3H 001DH UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 09D0H 001DH UNIT ?PR?_DA_WRITE?IIC + CODE 09EDH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0A0AH 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 0A24H 001AH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 0A3EH 001AH UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0A58H 0017H UNIT ?PR?UART1_INIT?UART + CODE 0A6FH 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0A84H 0015H UNIT ?PR?TIMER1_INIT?MAIN + CODE 0A99H 0014H UNIT ?PR?_WRITE_DS1302_BYTE?DS1302 + CODE 0AADH 0013H UNIT ?PR?_WRITE_DS1302?DS1302 + CODE 0AC0H 0011H UNIT ?PR?UT_WAVE_INIT?UL + CODE 0AD1H 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 0AE0H 000FH UNIT ?PR?I2CSTART?IIC + CODE 0AEFH 000CH UNIT ?PR?I2CSTOP?IIC + CODE 0AFBH 000CH UNIT ?CO?SEG + CODE 0B07H 0008H UNIT ?PR?_PUTCHAR?UART + CODE 0B0FH 0007H UNIT ?PR?DELAY12US?UL + + + + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 3 + + +OVERLAY MAP OF MODULE: .\Objects\demo_zuolan (?C_STARTUP) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------------- +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?UART1_INIT?UART + +--> ?PR?TIMER1_INIT?MAIN + +--> ?PR?_SET_RTC?DS1302 + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?DATA_PROC?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?UART_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?_SET_RTC?DS1302 ----- ----- 0016H 0003H + +--> ?PR?_WRITE_DS1302_BYTE?DS1302 + +?PR?_WRITE_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.4 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +*** NEW ROOT *************************************************** + +?PR?TIMER1_ISR?MAIN ----- ----- 0019H 0001H + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +?PR?_SEG_DISP?SEG ----- ----- ----- ----- + +--> ?CO?SEG + + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 4 + + + + +SYMBOL TABLE OF MODULE: .\Objects\demo_zuolan (?C_STARTUP) + + VALUE TYPE NAME + ---------------------------------- + + ------- MODULE ?C_STARTUP + C:0481H SEGMENT ?C_C51STARTUP + I:0051H SEGMENT ?STACK + C:0000H PUBLIC ?C_STARTUP + D:00E0H SYMBOL ACC + D:00F0H SYMBOL B + D:0083H SYMBOL DPH + D:0082H SYMBOL DPL + N:0000H SYMBOL IBPSTACK + N:0100H SYMBOL IBPSTACKTOP + N:0080H SYMBOL IDATALEN + C:0484H SYMBOL IDATALOOP + N:0000H SYMBOL PBPSTACK + N:0100H SYMBOL PBPSTACKTOP + N:0000H SYMBOL PDATALEN + N:0000H SYMBOL PDATASTART + N:0000H SYMBOL PPAGE + N:0000H SYMBOL PPAGEENABLE + D:00A0H SYMBOL PPAGE_SFR + D:0081H SYMBOL SP + C:0481H SYMBOL STARTUP1 + N:0000H SYMBOL XBPSTACK + N:0000H SYMBOL XBPSTACKTOP + N:0000H SYMBOL XDATALEN + N:0000H SYMBOL XDATASTART + C:0000H LINE# 126 + C:0481H LINE# 133 + C:0483H LINE# 134 + C:0484H LINE# 135 + C:0485H LINE# 136 + C:0487H LINE# 185 + C:048AH LINE# 196 + ------- ENDMOD ?C_STARTUP + + ------- MODULE MAIN + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:0025H PUBLIC ucRtc + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + B:00A8H.7 PUBLIC EA + D:00F8H PUBLIC P7 + C:0020H PUBLIC Led_Proc + D:0028H PUBLIC Seg_Point + D:00A8H PUBLIC IE + D:0030H PUBLIC Freq + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 5 + + + C:0975H PUBLIC Uart_Proc + C:001FH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + B:0020H.0 PUBLIC Uart_flag + B:0098H.0 PUBLIC RI + D:0032H PUBLIC Uart_Buf + D:003CH PUBLIC Seg_Buf + C:0875H PUBLIC Key_Proc + D:00D8H PUBLIC CCON + D:0044H PUBLIC Uart_Rx_Index + C:081DH PUBLIC main + C:0A6FH PUBLIC Timer0_Init + C:0A84H PUBLIC Timer1_Init + D:0045H PUBLIC Sys_Tick + D:0099H PUBLIC SBUF + D:0046H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + C:03ECH PUBLIC Timer1_Isr + B:00A8H.3 PUBLIC ET1 + B:0088H.5 PUBLIC TF0 + B:0088H.7 PUBLIC TF1 + D:008CH PUBLIC TH0 + D:008DH PUBLIC TH1 + D:008AH PUBLIC TL0 + D:0047H PUBLIC time_all_1s + D:008BH PUBLIC TL1 + B:0088H.4 PUBLIC TR0 + B:0088H.6 PUBLIC TR1 + C:07F0H PUBLIC Uart1_Isr + D:0049H PUBLIC ucLed + C:0AD1H PUBLIC Delay750ms + C:001EH PUBLIC Data_Proc + D:00D0H PUBLIC PSW + ------- PROC DATA_PROC + C:001EH LINE# 20 + C:001EH LINE# 21 + C:001EH LINE# 22 + C:001EH LINE# 23 + C:001EH LINE# 25 + C:001EH LINE# 26 + C:001EH LINE# 27 + C:001EH LINE# 29 + C:001EH LINE# 30 + C:001EH LINE# 31 + C:001EH LINE# 33 + C:001EH LINE# 34 + ------- ENDPROC DATA_PROC + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 6 + + + C:0875H LINE# 36 + C:0875H LINE# 37 + C:0875H LINE# 39 + C:0884H LINE# 41 + C:0889H LINE# 42 + C:0892H LINE# 43 + C:0898H LINE# 44 + C:089BH LINE# 45 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:001FH LINE# 48 + C:001FH LINE# 49 + C:001FH LINE# 50 + C:001FH LINE# 52 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0020H LINE# 53 + ------- ENDPROC LED_PROC + ------- PROC UART_PROC + C:0975H LINE# 54 + C:0975H LINE# 55 + C:0975H LINE# 56 + C:0979H LINE# 58 + C:0980H LINE# 59 + C:0980H LINE# 60 + C:0985H LINE# 62 + C:0991H LINE# 63 + C:0994H LINE# 64 + C:0994H LINE# 65 + ------- ENDPROC UART_PROC + ------- PROC TIMER0_INIT + C:0A6FH LINE# 66 + C:0A6FH LINE# 67 + C:0A6FH LINE# 68 + C:0A72H LINE# 69 + C:0A75H LINE# 70 + C:0A78H LINE# 71 + C:0A7BH LINE# 72 + C:0A7DH LINE# 73 + C:0A7FH LINE# 74 + C:0A81H LINE# 75 + C:0A83H LINE# 76 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER1_INIT + C:0A84H LINE# 78 + C:0A84H LINE# 79 + C:0A84H LINE# 80 + C:0A87H LINE# 81 + C:0A8AH LINE# 82 + C:0A8DH LINE# 83 + C:0A90H LINE# 84 + C:0A92H LINE# 85 + C:0A94H LINE# 86 + C:0A96H LINE# 87 + C:0A98H LINE# 88 + ------- ENDPROC TIMER1_INIT + ------- PROC TIMER1_ISR + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 7 + + + ------- DO + D:0019H SYMBOL i + ------- ENDDO + C:03ECH LINE# 90 + C:0409H LINE# 93 + C:041AH LINE# 94 + C:041AH LINE# 95 + C:0420H LINE# 96 + C:042AH LINE# 97 + C:0430H LINE# 98 + C:0430H LINE# 99 + C:0433H LINE# 100 + C:0435H LINE# 101 + C:043DH LINE# 102 + C:044EH LINE# 103 + C:0451H LINE# 104 + C:0466H LINE# 105 + ------- ENDPROC TIMER1_ISR + ------- PROC UART1_ISR + C:07F0H LINE# 106 + C:07F9H LINE# 108 + C:07FCH LINE# 109 + C:07FCH LINE# 110 + C:07FEH LINE# 111 + C:0801H LINE# 112 + C:0808H LINE# 113 + C:080AH LINE# 114 + C:080CH LINE# 115 + C:080CH LINE# 116 + C:0813H LINE# 117 + C:0816H LINE# 118 + ------- ENDPROC UART1_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0AD1H LINE# 119 + C:0AD1H LINE# 120 + C:0AD1H LINE# 123 + C:0AD2H LINE# 124 + C:0AD3H LINE# 125 + C:0AD5H LINE# 126 + C:0AD7H LINE# 127 + C:0AD9H LINE# 129 + C:0AD9H LINE# 131 + C:0AD9H LINE# 132 + C:0ADBH LINE# 134 + C:0ADDH LINE# 135 + C:0ADFH LINE# 136 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:081DH LINE# 138 + C:081DH LINE# 139 + C:081DH LINE# 140 + C:0820H LINE# 141 + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 8 + + + C:0823H LINE# 142 + C:0826H LINE# 143 + C:0829H LINE# 144 + C:0832H LINE# 145 + C:0835H LINE# 146 + C:0838H LINE# 147 + C:0838H LINE# 148 + C:0838H LINE# 149 + C:083BH LINE# 150 + C:083EH LINE# 151 + C:0841H LINE# 152 + C:0844H LINE# 153 + C:0847H LINE# 154 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE DS1302 + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:078CH PUBLIC _Read_Rtc + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0587H PUBLIC _Set_Rtc + C:0758H PUBLIC _Read_Ds1302_Byte + B:00A0H.3 PUBLIC SDA + B:0090H.7 PUBLIC SCK + C:0A99H PUBLIC _Write_Ds1302_Byte + C:0AADH PUBLIC _Write_Ds1302 + B:0090H.3 PUBLIC RST + D:00D0H PUBLIC PSW + ------- PROC _WRITE_DS1302 + D:0007H SYMBOL temp + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0AADH LINE# 14 + C:0AADH LINE# 15 + C:0AADH LINE# 17 + C:0AAFH LINE# 18 + C:0AAFH LINE# 19 + C:0AB1H LINE# 20 + C:0AB5H LINE# 21 + C:0AB9H LINE# 22 + C:0ABBH LINE# 23 + C:0ABFH LINE# 24 + ------- ENDPROC _WRITE_DS1302 + ------- PROC _WRITE_DS1302_BYTE + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 9 + + + D:0007H SYMBOL address + D:0005H SYMBOL dat + C:0A99H LINE# 27 + C:0A99H LINE# 28 + C:0A99H LINE# 29 + C:0A9BH LINE# 30 + C:0A9CH LINE# 31 + C:0A9EH LINE# 32 + C:0A9FH LINE# 33 + C:0AA1H LINE# 34 + C:0AA2H LINE# 35 + C:0AA5H LINE# 36 + C:0AAAH LINE# 37 + C:0AACH LINE# 38 + ------- ENDPROC _WRITE_DS1302_BYTE + ------- PROC _READ_DS1302_BYTE + D:0007H SYMBOL address + ------- DO + D:0007H SYMBOL i + D:0005H SYMBOL temp + ------- ENDDO + C:0758H LINE# 41 + C:0758H LINE# 42 + C:0758H LINE# 43 + C:075AH LINE# 44 + C:075CH LINE# 45 + C:075DH LINE# 46 + C:075FH LINE# 47 + C:0760H LINE# 48 + C:0762H LINE# 49 + C:0763H LINE# 50 + C:0766H LINE# 51 + C:0768H LINE# 52 + C:0768H LINE# 53 + C:076AH LINE# 54 + C:076EH LINE# 55 + C:0771H LINE# 56 + C:0774H LINE# 57 + C:0776H LINE# 58 + C:077AH LINE# 59 + C:077CH LINE# 60 + C:077DH LINE# 61 + C:077FH LINE# 62 + C:0780H LINE# 63 + C:0782H LINE# 64 + C:0783H LINE# 65 + C:0785H LINE# 66 + C:0786H LINE# 67 + C:0788H LINE# 68 + C:0789H LINE# 69 + C:078BH LINE# 70 + ------- ENDPROC _READ_DS1302_BYTE + ------- PROC _SET_RTC + D:0016H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + D:0003H SYMBOL temp + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 10 + + + ------- ENDDO + C:0587H LINE# 72 + C:058DH LINE# 73 + C:058DH LINE# 76 + C:0594H LINE# 77 + C:059BH LINE# 78 + C:059DH LINE# 79 + C:059DH LINE# 81 + C:05BDH LINE# 82 + C:05CBH LINE# 83 + C:05CFH LINE# 84 + ------- ENDPROC _SET_RTC + ------- PROC _READ_RTC + D:001AH SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + D:0007H SYMBOL temp + ------- ENDDO + C:078CH LINE# 87 + C:0792H LINE# 88 + C:0792H LINE# 91 + C:0794H LINE# 92 + C:0794H LINE# 93 + C:07A0H LINE# 94 + C:07BBH LINE# 95 + C:07BFH LINE# 96 + ------- ENDPROC _READ_RTC + ------- ENDMOD DS1302 + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:08C3H PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0A0EH SYMBOL _I2C_Delay + C:09D0H PUBLIC _Da_Write + D:00B8H PUBLIC IP + C:09B3H PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + C:0662H PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + C:05D6H PUBLIC _EEPROM_Write + B:00A0H.0 PUBLIC scl + C:0AE0H PUBLIC I2CStart + C:0003H PUBLIC _I2CSendAck + C:0849H PUBLIC _I2CSendByte + C:08FAH PUBLIC I2CWaitAck + C:0AEFH PUBLIC I2CStop + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 11 + + + D:00D0H PUBLIC PSW + C:0A0AH SYMBOL L?0036 + ------- PROC L?0035 + ------- ENDPROC L?0035 + C:0A0AH SYMBOL L?0036 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:0A0EH LINE# 14 + C:0A0EH LINE# 15 + C:0A0EH LINE# 16 + C:0A0FH LINE# 17 + C:0A10H LINE# 18 + C:0A11H LINE# 19 + C:0A12H LINE# 20 + C:0A13H LINE# 21 + C:0A14H LINE# 22 + C:0A15H LINE# 23 + C:0A16H LINE# 24 + C:0A17H LINE# 25 + C:0A18H LINE# 26 + C:0A19H LINE# 27 + C:0A1AH LINE# 28 + C:0A1BH LINE# 29 + C:0A1CH LINE# 30 + C:0A1DH LINE# 31 + C:0A23H LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:0AE0H LINE# 35 + C:0AE0H LINE# 36 + C:0AE2H LINE# 37 + C:0AE2H LINE# 38 + C:0AE5H LINE# 39 + C:0AE7H LINE# 40 + C:0AECH LINE# 41 + C:0AEEH LINE# 42 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:0AEFH LINE# 45 + C:0AEFH LINE# 46 + C:0AF1H LINE# 47 + C:0AF1H LINE# 48 + C:0AF4H LINE# 49 + C:0AF6H LINE# 50 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0849H LINE# 54 + C:084BH LINE# 57 + C:084DH LINE# 58 + C:084FH LINE# 59 + C:0854H LINE# 60 + C:0858H LINE# 61 + C:085AH LINE# 62 + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 12 + + + C:085CH LINE# 63 + C:085EH LINE# 64 + C:085EH LINE# 65 + C:0863H LINE# 66 + C:0865H LINE# 67 + C:0869H LINE# 68 + C:086EH LINE# 69 + C:0872H LINE# 71 + C:0874H LINE# 72 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:09B3H LINE# 75 + C:09B3H LINE# 78 + C:09B5H LINE# 79 + C:09B5H LINE# 80 + C:09B8H LINE# 81 + C:09BCH LINE# 82 + C:09C2H LINE# 83 + C:09C4H LINE# 84 + C:09C9H LINE# 85 + C:09CDH LINE# 86 + C:09CFH LINE# 87 + ------- ENDPROC I2CRECEIVEBYTE + C:08EFH SYMBOL L?0034 + ------- PROC L?0033 + ------- ENDPROC L?0033 + C:08EFH SYMBOL L?0034 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:08FAH LINE# 90 + C:08FAH LINE# 93 + C:08FAH LINE# 94 + C:08FDH LINE# 95 + C:0902H LINE# 96 + C:0904H LINE# 97 + C:0909H LINE# 99 + C:090BH LINE# 100 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:0003H LINE# 103 + C:0003H LINE# 104 + C:0005H LINE# 105 + C:000AH LINE# 106 + C:000FH LINE# 107 + C:000FH LINE# 108 + C:0012H LINE# 109 + C:0014H LINE# 110 + C:0016H LINE# 111 + ------- ENDPROC _I2CSENDACK + ------- PROC _AD_READ + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 13 + + + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:08C3H LINE# 114 + C:08C5H LINE# 117 + C:08C8H LINE# 118 + C:08CAH LINE# 119 + C:08CAH LINE# 120 + C:08CAH LINE# 121 + C:08CDH LINE# 123 + C:08D0H LINE# 124 + C:08D5H LINE# 125 + C:08D8H LINE# 126 + C:08DDH LINE# 127 + C:08E2H LINE# 128 + C:08E5H LINE# 129 + C:08E7H LINE# 130 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:09D0H LINE# 132 + C:09D2H LINE# 134 + C:09D5H LINE# 135 + C:09DAH LINE# 136 + C:09DDH LINE# 137 + C:09E2H LINE# 138 + C:09E5H LINE# 139 + C:09EAH LINE# 140 + ------- ENDPROC _DA_WRITE + ------- PROC _EEPROM_WRITE + D:0008H SYMBOL str + D:0003H SYMBOL addr + D:000CH SYMBOL num + C:05D6H LINE# 142 + C:05DCH LINE# 143 + C:05DCH LINE# 144 + C:05DCH LINE# 145 + C:05DCH LINE# 146 + C:05DCH LINE# 147 + C:05DFH LINE# 149 + C:05E6H LINE# 150 + C:05FBH LINE# 151 + C:05FEH LINE# 152 + C:0603H LINE# 153 + C:0605H LINE# 154 + C:0608H LINE# 155 + C:060DH LINE# 156 + C:0612H LINE# 157 + C:0617H LINE# 158 + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:000DH SYMBOL str + D:0003H SYMBOL addr + D:0011H SYMBOL num + C:0662H LINE# 160 + C:0668H LINE# 161 + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 14 + + + C:0668H LINE# 162 + C:0668H LINE# 163 + C:0668H LINE# 164 + C:0668H LINE# 165 + C:066BH LINE# 167 + C:066EH LINE# 168 + C:0673H LINE# 169 + C:0676H LINE# 170 + C:067DH LINE# 171 + C:0692H LINE# 172 + C:0696H LINE# 173 + C:069AH LINE# 175 + C:069FH LINE# 176 + C:06A1H LINE# 177 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:09EDH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:09EDH LINE# 2 + C:09EDH LINE# 3 + C:09F0H LINE# 4 + C:09F8H LINE# 5 + C:09FBH LINE# 7 + C:09FEH LINE# 8 + C:0A06H LINE# 9 + C:0A09H LINE# 10 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:050DH PUBLIC Key_Read + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 15 + + + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + B:00B0H.1 PUBLIC P31 + D:0098H PUBLIC SCON + B:00B0H.2 PUBLIC P32 + D:0088H PUBLIC TCON + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.3 PUBLIC ET1 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:050DH LINE# 2 + C:050DH LINE# 3 + C:050FH LINE# 4 + C:0511H LINE# 6 + C:0513H LINE# 7 + C:0515H LINE# 8 + C:0517H LINE# 9 + C:0519H LINE# 10 + C:051EH LINE# 11 + C:0523H LINE# 12 + C:0528H LINE# 13 + C:052DH LINE# 15 + C:052FH LINE# 16 + C:0531H LINE# 17 + C:0533H LINE# 18 + C:0535H LINE# 19 + C:053AH LINE# 20 + C:053FH LINE# 21 + C:0544H LINE# 22 + C:0549H LINE# 24 + C:054BH LINE# 25 + C:054DH LINE# 26 + C:054FH LINE# 27 + C:0551H LINE# 28 + C:0556H LINE# 29 + C:055BH LINE# 30 + C:0560H LINE# 31 + C:0565H LINE# 33 + C:0567H LINE# 34 + C:0569H LINE# 35 + C:056BH LINE# 36 + C:056DH LINE# 37 + C:0572H LINE# 38 + C:0577H LINE# 39 + C:057CH LINE# 40 + C:0581H LINE# 42 + C:0584H LINE# 43 + C:0586H LINE# 44 + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 16 + + + C:0586H LINE# 45 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:092FH PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:071EH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + C:0952H PUBLIC MOTOR + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0014H PUBLIC temp_0 + D:0015H PUBLIC temp_old_0 + D:00D0H PUBLIC PSW + C:090CH PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:0012H SYMBOL temp + D:0013H SYMBOL temp_old + ------- ENDDO + C:071EH LINE# 5 + C:071EH LINE# 8 + C:0721H LINE# 9 + C:0730H LINE# 11 + C:073EH LINE# 12 + C:0744H LINE# 13 + C:0749H LINE# 14 + C:0751H LINE# 15 + C:0754H LINE# 16 + C:0757H LINE# 17 + C:0757H LINE# 18 + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0020H.1 SYMBOL enable + C:090CH LINE# 24 + C:090CH LINE# 25 + C:090FH LINE# 26 + C:0914H LINE# 28 + C:0917H LINE# 29 + C:091DH LINE# 30 + C:0920H LINE# 31 + C:0928H LINE# 32 + C:092BH LINE# 33 + C:092EH LINE# 34 + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 17 + + + C:092EH LINE# 35 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0020H.2 SYMBOL enable + C:092FH LINE# 38 + C:092FH LINE# 39 + C:0932H LINE# 40 + C:0937H LINE# 42 + C:093AH LINE# 43 + C:0940H LINE# 44 + C:0943H LINE# 45 + C:094BH LINE# 46 + C:094EH LINE# 47 + C:0951H LINE# 48 + C:0951H LINE# 49 + ------- ENDPROC RELAY + ------- PROC MOTOR + B:0020H.3 SYMBOL enable + C:0952H LINE# 52 + C:0952H LINE# 53 + C:0955H LINE# 54 + C:095AH LINE# 56 + C:095DH LINE# 57 + C:0963H LINE# 58 + C:0966H LINE# 59 + C:096EH LINE# 60 + C:0971H LINE# 61 + C:0974H LINE# 62 + C:0974H LINE# 63 + ------- ENDPROC MOTOR + ------- ENDMOD LED + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + C:0A3EH PUBLIC Read_DS18B20 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0A28H PUBLIC _Delay_OneWire + C:0995H PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:089CH PUBLIC init_ds18b20 + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:06E3H PUBLIC rd_temperature + D:00D0H PUBLIC PSW + C:0A24H SYMBOL L?0020 + ------- PROC L?0019 + ------- ENDPROC L?0019 + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 18 + + + C:0A24H SYMBOL L?0020 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:0A28H LINE# 10 + C:0A28H LINE# 12 + C:0A32H LINE# 13 + C:0A3DH LINE# 14 + C:0A3DH LINE# 15 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:0995H LINE# 18 + C:0997H LINE# 20 + C:0999H LINE# 21 + C:099BH LINE# 22 + C:099FH LINE# 23 + C:09A2H LINE# 24 + C:09A4H LINE# 25 + C:09A8H LINE# 26 + C:09ACH LINE# 27 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:0A3EH LINE# 31 + C:0A3EH LINE# 35 + C:0A40H LINE# 36 + C:0A42H LINE# 37 + C:0A46H LINE# 38 + C:0A48H LINE# 39 + C:0A4BH LINE# 40 + C:0A4EH LINE# 41 + C:0A4EH LINE# 42 + C:0A51H LINE# 43 + C:0A55H LINE# 44 + C:0A57H LINE# 45 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.4 SYMBOL initflag + ------- ENDDO + C:089CH LINE# 48 + C:089CH LINE# 49 + C:089EH LINE# 51 + C:08A0H LINE# 52 + C:08A7H LINE# 53 + C:08A9H LINE# 54 + C:08B0H LINE# 55 + C:08B2H LINE# 56 + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 19 + + + C:08B9H LINE# 57 + C:08BDH LINE# 58 + C:08C0H LINE# 60 + C:08C2H LINE# 61 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:06E3H LINE# 63 + C:06E3H LINE# 65 + C:06E6H LINE# 66 + C:06EBH LINE# 67 + C:06F0H LINE# 69 + C:06F7H LINE# 71 + C:06FAH LINE# 72 + C:06FFH LINE# 73 + C:0704H LINE# 74 + C:0709H LINE# 75 + C:070CH LINE# 76 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:06A4H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0AFBH PUBLIC seg_dula + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:06A4H LINE# 6 + C:06A4H LINE# 8 + C:06A7H LINE# 9 + C:06AFH LINE# 10 + C:06B2H LINE# 13 + C:06BFH LINE# 14 + C:06C7H LINE# 15 + C:06CAH LINE# 18 + C:06D1H LINE# 19 + C:06D7H LINE# 20 + C:06DFH LINE# 21 + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 20 + + + C:06E2H LINE# 22 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE UART + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + B:00A8H.7 PUBLIC EA + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + B:00A8H.4 PUBLIC ES + D:00B8H PUBLIC IP + B:0098H.1 PUBLIC TI + D:00D8H PUBLIC CCON + D:0099H PUBLIC SBUF + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + C:0A58H PUBLIC Uart1_Init + D:00D6H PUBLIC T2H + D:00D7H PUBLIC T2L + D:00D0H PUBLIC PSW + C:0B07H PUBLIC _putchar + ------- PROC UART1_INIT + C:0A58H LINE# 2 + C:0A58H LINE# 3 + C:0A58H LINE# 4 + C:0A5BH LINE# 5 + C:0A5EH LINE# 6 + C:0A61H LINE# 7 + C:0A64H LINE# 8 + C:0A67H LINE# 9 + C:0A6AH LINE# 10 + C:0A6CH LINE# 11 + C:0A6EH LINE# 12 + ------- ENDPROC UART1_INIT + ------- PROC _PUTCHAR + D:0007H SYMBOL ch + C:0B07H LINE# 13 + C:0B07H LINE# 14 + C:0B09H LINE# 15 + C:0B0CH LINE# 16 + C:0B0EH LINE# 17 + C:0B0EH LINE# 18 + ------- ENDPROC _PUTCHAR + ------- ENDMOD UART + + ------- MODULE UL + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 21 + + + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + B:00A8H.7 PUBLIC EA + D:00F8H PUBLIC P7 + B:00D8H.7 PUBLIC CF + D:00F9H PUBLIC CH + D:00A8H PUBLIC IE + D:00E9H PUBLIC CL + B:00D8H.6 PUBLIC CR + D:00B8H PUBLIC IP + C:061CH PUBLIC Ut_Wave_Data + D:00D9H PUBLIC CMOD + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0AC0H PUBLIC Ut_Wave_Init + C:0B0FH PUBLIC Delay12us + B:0090H.1 PUBLIC Rx + B:0090H.0 PUBLIC Tx + D:00D0H PUBLIC PSW + ------- PROC DELAY12US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0B0FH LINE# 6 + C:0B0FH LINE# 7 + C:0B0FH LINE# 10 + C:0B10H LINE# 11 + C:0B11H LINE# 12 + C:0B13H LINE# 13 + C:0B15H LINE# 14 + ------- ENDPROC DELAY12US + ------- PROC UT_WAVE_INIT + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0AC0H LINE# 15 + C:0AC0H LINE# 17 + C:0AC2H LINE# 18 + C:0AC4H LINE# 19 + C:0AC7H LINE# 20 + C:0AC9H LINE# 21 + C:0ACCH LINE# 22 + C:0AD0H LINE# 23 + ------- ENDPROC UT_WAVE_INIT + ------- PROC UT_WAVE_DATA + ------- DO + D:0006H SYMBOL time + ------- ENDDO + C:061CH LINE# 24 + C:061CH LINE# 26 + C:0621H LINE# 27 + C:0623H LINE# 29 + C:0625H LINE# 30 + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 22 + + + C:0628H LINE# 31 + C:062AH LINE# 33 + C:062CH LINE# 34 + C:0632H LINE# 35 + C:0634H LINE# 36 + C:0637H LINE# 40 + C:063FH LINE# 41 + C:065DH LINE# 42 + C:065DH LINE# 43 + C:065FH LINE# 44 + C:0661H LINE# 45 + C:0661H LINE# 46 + ------- ENDPROC UT_WAVE_DATA + ------- ENDMOD UL + + ------- MODULE ?C?FPADD + C:002DH PUBLIC ?C?FPADD + C:0029H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + + ------- MODULE ?C?FPMUL + C:011EH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:022EH PUBLIC ?C?FCASTC + C:0229H PUBLIC ?C?FCASTI + C:0224H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0262H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?CLDPTR + C:02E3H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CLDOPTR + C:02FCH PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:0329H PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?CSTOPTR + C:033BH PUBLIC ?C?CSTOPTR + ------- ENDMOD ?C?CSTOPTR + + ------- MODULE ?C?UIDIV + C:035DH PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:03B2H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + BL51 BANKED LINKER/LOCATER V6.22.4.0 03/10/2025 18:03:55 PAGE 23 + + + + ------- MODULE ?C?MEMSET + C:03C0H PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_READ_RTC?DS1302 + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_AD_READ?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_DA_WRITE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_PUTCHAR?UART + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?UT_WAVE_DATA?UL + +Program Size: data=78.5 xdata=0 code=2836 +LINK/LOCATE RUN COMPLETE. 10 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Listings/ds1302.lst b/模板/zuolan_v1标志位/prj/Listings/ds1302.lst new file mode 100644 index 0000000..5e94f43 --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/ds1302.lst @@ -0,0 +1,123 @@ +C51 COMPILER V9.60.7.0 DS1302 03/10/2025 18:03:53 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DE + -BUG OBJECTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. + 4 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运 + -速度和试题 + 5 中对单片机时钟频率的要求,进行代码调试和修改。 + 6 */ + 7 #include "ds1302.h" + 8 + 9 #include "intrins.h" + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 sbit SCK = P1 ^ 7; + 13 // + 14 void Write_Ds1302(unsigned char temp) + 15 { + 16 1 unsigned char i; + 17 1 for (i = 0; i < 8; i++) + 18 1 { + 19 2 SCK = 0; + 20 2 SDA = temp & 0x01; + 21 2 temp >>= 1; + 22 2 SCK = 1; + 23 2 } + 24 1 } + 25 + 26 // + 27 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 28 { + 29 1 RST = 0; + 30 1 _nop_(); + 31 1 SCK = 0; + 32 1 _nop_(); + 33 1 RST = 1; + 34 1 _nop_(); + 35 1 Write_Ds1302(address); + 36 1 Write_Ds1302(dat); + 37 1 RST = 0; + 38 1 } + 39 + 40 // + 41 unsigned char Read_Ds1302_Byte(unsigned char address) + 42 { + 43 1 unsigned char i, temp = 0x00; + 44 1 RST = 0; + 45 1 _nop_(); + 46 1 SCK = 0; + 47 1 _nop_(); + 48 1 RST = 1; + 49 1 _nop_(); + 50 1 Write_Ds1302(address); + 51 1 for (i = 0; i < 8; i++) + 52 1 { + 53 2 SCK = 0; + C51 COMPILER V9.60.7.0 DS1302 03/10/2025 18:03:53 PAGE 2 + + 54 2 temp >>= 1; + 55 2 if (SDA) + 56 2 temp |= 0x80; + 57 2 SCK = 1; + 58 2 } + 59 1 RST = 0; + 60 1 _nop_(); + 61 1 SCK = 0; + 62 1 _nop_(); + 63 1 SCK = 1; + 64 1 _nop_(); + 65 1 SDA = 0; + 66 1 _nop_(); + 67 1 SDA = 1; + 68 1 _nop_(); + 69 1 return (temp); + 70 1 } + 71 // 十进制 11 -> 0x11 + 72 void Set_Rtc(unsigned char *ucRtc) + 73 { + 74 1 unsigned char i; + 75 1 unsigned char temp; + 76 1 Write_Ds1302_Byte(0x8e, 0x00); + 77 1 Write_Ds1302_Byte(0x80, 0x80); + 78 1 for (i = 0; i < 3; i++) + 79 1 { + 80 2 + 81 2 temp = (ucRtc[i] / 10) * 16 + ucRtc[i] % 10; + 82 2 Write_Ds1302_Byte(0x84 - 2 * i, temp); + 83 2 } + 84 1 Write_Ds1302_Byte(0x8e, 0x80); + 85 1 } + 86 // 十进制 0x11 -> 11 + 87 void Read_Rtc(unsigned char *ucRtc) + 88 { + 89 1 unsigned char i; + 90 1 unsigned char temp; + 91 1 for (i = 0; i < 3; i++) + 92 1 { + 93 2 temp = Read_Ds1302_Byte(0x85 - 2 * i); + 94 2 ucRtc[i] = temp / 16 * 10 + temp % 16; + 95 2 } + 96 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 222 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Listings/iic.lst b/模板/zuolan_v1标志位/prj/Listings/iic.lst new file mode 100644 index 0000000..121ead7 --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/iic.lst @@ -0,0 +1,209 @@ +C51 COMPILER V9.60.7.0 IIC 03/10/2025 18:03:54 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG + - OBJECTEXTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. + 4 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运 + -速度和试题 + 5 中对单片机时钟频率的要求,进行代码调试和修改。 + 6 */ + 7 #include "iic.h" + 8 + 9 #include "intrins.h" + 10 #define DELAY_TIME 5 + 11 sbit scl = P2 ^ 0; + 12 sbit sda = P2 ^ 1; + 13 // + 14 static void I2C_Delay(unsigned char n) { + 15 1 do { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) { + 36 1 sda = 1; + 37 1 scl = 1; + 38 1 I2C_Delay(DELAY_TIME); + 39 1 sda = 0; + 40 1 I2C_Delay(DELAY_TIME); + 41 1 scl = 0; + 42 1 } + 43 + 44 // + 45 void I2CStop(void) { + 46 1 sda = 0; + 47 1 scl = 1; + 48 1 I2C_Delay(DELAY_TIME); + 49 1 sda = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 } + 52 + 53 // + C51 COMPILER V9.60.7.0 IIC 03/10/2025 18:03:54 PAGE 2 + + 54 void I2CSendByte(unsigned char byt) { + 55 1 unsigned char i; + 56 1 + 57 1 for (i = 0; i < 8; i++) { + 58 2 scl = 0; + 59 2 I2C_Delay(DELAY_TIME); + 60 2 if (byt & 0x80) { + 61 3 sda = 1; + 62 3 } else { + 63 3 sda = 0; + 64 3 } + 65 2 I2C_Delay(DELAY_TIME); + 66 2 scl = 1; + 67 2 byt <<= 1; + 68 2 I2C_Delay(DELAY_TIME); + 69 2 } + 70 1 + 71 1 scl = 0; + 72 1 } + 73 + 74 // + 75 unsigned char I2CReceiveByte(void) { + 76 1 unsigned char da; + 77 1 unsigned char i; + 78 1 for (i = 0; i < 8; i++) { + 79 2 scl = 1; + 80 2 I2C_Delay(DELAY_TIME); + 81 2 da <<= 1; + 82 2 if (sda) da |= 0x01; + 83 2 scl = 0; + 84 2 I2C_Delay(DELAY_TIME); + 85 2 } + 86 1 return da; + 87 1 } + 88 + 89 // + 90 unsigned char I2CWaitAck(void) { + 91 1 unsigned char ackbit; + 92 1 + 93 1 scl = 1; + 94 1 I2C_Delay(DELAY_TIME); + 95 1 ackbit = sda; + 96 1 scl = 0; + 97 1 I2C_Delay(DELAY_TIME); + 98 1 + 99 1 return ackbit; + 100 1 } + 101 + 102 // + 103 void I2CSendAck(unsigned char ackbit) { + 104 1 scl = 0; + 105 1 sda = ackbit; + 106 1 I2C_Delay(DELAY_TIME); + 107 1 scl = 1; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 scl = 0; + 110 1 sda = 1; + 111 1 I2C_Delay(DELAY_TIME); + 112 1 } + 113 + 114 unsigned char Ad_Read(unsigned char addr) { + 115 1 unsigned char temp; + C51 COMPILER V9.60.7.0 IIC 03/10/2025 18:03:54 PAGE 3 + + 116 1 // 选择芯片为PCF + 117 1 I2CStart(); + 118 1 I2CSendByte(0x90); + 119 1 I2CWaitAck(); + 120 1 I2CSendByte(addr); + 121 1 I2CWaitAck(); + 122 1 + 123 1 I2CStart(); + 124 1 I2CSendByte(0x91); + 125 1 I2CWaitAck(); + 126 1 temp = I2CReceiveByte(); + 127 1 I2CSendAck(1); + 128 1 I2CStop(); + 129 1 return temp; + 130 1 } + 131 // 数字电压255->5V + 132 void Da_Write(unsigned char dat) { + 133 1 // 选择芯片为PCF + 134 1 I2CStart(); + 135 1 I2CSendByte(0x90); + 136 1 I2CWaitAck(); + 137 1 I2CSendByte(0x41); + 138 1 I2CWaitAck(); + 139 1 I2CSendByte(dat); + 140 1 I2CWaitAck(); + 141 1 } + 142 void EEPROM_Write(unsigned char *str, unsigned char addr, unsigned char num) { + 143 1 I2CStart(); + 144 1 I2CSendByte(0xa0); + 145 1 I2CWaitAck(); + 146 1 I2CSendByte(addr); + 147 1 I2CWaitAck(); + 148 1 + 149 1 while (num--) { + 150 2 I2CSendByte(*str++); + 151 2 I2CWaitAck(); + 152 2 I2C_Delay(200); + 153 2 } + 154 1 I2CStop(); + 155 1 I2C_Delay(255); + 156 1 I2C_Delay(255); + 157 1 I2C_Delay(255); + 158 1 I2C_Delay(255); + 159 1 } + 160 void EEPROM_Read(unsigned char *str, unsigned char addr, unsigned char num) { + 161 1 I2CStart(); + 162 1 I2CSendByte(0xa0); + 163 1 I2CWaitAck(); + 164 1 I2CSendByte(addr); + 165 1 I2CWaitAck(); + 166 1 + 167 1 I2CStart(); + 168 1 I2CSendByte(0xa1); + 169 1 I2CWaitAck(); + 170 1 while (num--) { + 171 2 *str++ = I2CReceiveByte(); + 172 2 if (num) + 173 2 I2CSendAck(0); + 174 2 else + 175 2 I2CSendAck(1); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.60.7.0 IIC 03/10/2025 18:03:54 PAGE 4 + + 178 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 388 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Listings/init.lst b/模板/zuolan_v1标志位/prj/Listings/init.lst new file mode 100644 index 0000000..fc988f8 --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/init.lst @@ -0,0 +1,34 @@ +C51 COMPILER V9.60.7.0 INIT 03/10/2025 18:03:54 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBU + -G OBJECTEXTEND PRINT(.\Listings\init.lst) TABS(2) OBJECT(.\Objects\init.obj) + +line level source + + 1 #include "init.h" + 2 void System_Init() { + 3 1 P0 = 0xff; + 4 1 P2 = P2 & 0x1f | 0x80; + 5 1 P2 &= 0x1f; + 6 1 + 7 1 P0 = 0x00; + 8 1 P2 = P2 & 0x1f | 0xa0; + 9 1 P2 &= 0x1f; + 10 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Listings/key.lst b/模板/zuolan_v1标志位/prj/Listings/key.lst new file mode 100644 index 0000000..ff3953f --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/key.lst @@ -0,0 +1,71 @@ +C51 COMPILER V9.60.7.0 KEY 03/10/2025 18:03:54 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG + - OBJECTEXTEND PRINT(.\Listings\key.lst) TABS(2) OBJECT(.\Objects\key.obj) + +line level source + + 1 #include "key.h" + 2 unsigned char Key_Read() { + 3 1 unsigned char temp = 0; + 4 1 ET1 = 0; + 5 1 + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) temp = 4; + 11 1 if (P32 == 0) temp = 5; + 12 1 if (P31 == 0) temp = 6; + 13 1 if (P30 == 0) temp = 7; + 14 1 + 15 1 P44 = 1; + 16 1 P42 = 0; + 17 1 P35 = 1; + 18 1 P34 = 1; + 19 1 if (P33 == 0) temp = 8; + 20 1 if (P32 == 0) temp = 9; + 21 1 if (P31 == 0) temp = 10; + 22 1 if (P30 == 0) temp = 11; + 23 1 + 24 1 P44 = 1; + 25 1 P42 = 1; + 26 1 P35 = 0; + 27 1 P34 = 1; + 28 1 if (P33 == 0) temp = 12; + 29 1 if (P32 == 0) temp = 13; + 30 1 if (P31 == 0) temp = 14; + 31 1 if (P30 == 0) temp = 15; + 32 1 + 33 1 P44 = 1; + 34 1 P42 = 1; + 35 1 P35 = 1; + 36 1 P34 = 0; + 37 1 if (P33 == 0) temp = 16; + 38 1 if (P32 == 0) temp = 17; + 39 1 if (P31 == 0) temp = 18; + 40 1 if (P30 == 0) temp = 19; + 41 1 + 42 1 P3 = 0xff; + 43 1 ET1 = 1; + 44 1 return temp; + 45 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + C51 COMPILER V9.60.7.0 KEY 03/10/2025 18:03:54 PAGE 2 + + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Listings/led.lst b/模板/zuolan_v1标志位/prj/Listings/led.lst new file mode 100644 index 0000000..2b7c875 --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/led.lst @@ -0,0 +1,89 @@ +C51 COMPILER V9.60.7.0 LED 03/10/2025 18:03:54 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG + - OBJECTEXTEND PRINT(.\Listings\led.lst) TABS(2) OBJECT(.\Objects\led.obj) + +line level source + + 1 #include "led.h" + 2 /// @brief Ledɨ + 3 /// @param addr ҪƵLedĵַ0-7 + 4 /// @param enable ƸõַLedǷ + 5 void Led_Disp(unsigned char addr, unsigned char enable) { + 6 1 static unsigned char temp = 0x00; + 7 1 static unsigned char temp_old = 0xff; + 8 1 if (enable) + 9 1 temp |= 0x01 << addr; + 10 1 else + 11 1 temp &= ~(0x01 << addr); + 12 1 if (temp != temp_old) { + 13 2 P0 = ~temp; + 14 2 P2 = P2 & 0x1f | 0x80; + 15 2 P2 &= 0x1f; + 16 2 temp_old = temp; + 17 2 } + 18 1 } + 19 + 20 unsigned char temp_0 = 0x00; + 21 unsigned char temp_old_0 = 0xff; + 22 /// @brief + 23 /// @param enable + 24 void Beep(bit enable) { + 25 1 if (enable) + 26 1 temp_0 |= 0x40; + 27 1 else + 28 1 temp_0 &= ~(0x40); + 29 1 if (temp_0 != temp_old_0) { + 30 2 P0 = temp_0; + 31 2 P2 = P2 & 0x1f | 0xa0; + 32 2 P2 &= 0x1f; + 33 2 temp_old_0 = temp_0; + 34 2 } + 35 1 } + 36 /// @brief ̵ + 37 /// @param enable + 38 void Relay(bit enable) { + 39 1 if (enable) + 40 1 temp_0 |= 0x10; + 41 1 else + 42 1 temp_0 &= ~(0x10); + 43 1 if (temp_0 != temp_old_0) { + 44 2 P0 = temp_0; + 45 2 P2 = P2 & 0x1f | 0xa0; + 46 2 P2 &= 0x1f; + 47 2 temp_old_0 = temp_0; + 48 2 } + 49 1 } + 50 /// @brief MOTOR + 51 /// @param enable + 52 void MOTOR(bit enable) { + 53 1 if (enable) + 54 1 temp_0 |= 0x20; + C51 COMPILER V9.60.7.0 LED 03/10/2025 18:03:54 PAGE 2 + + 55 1 else + 56 1 temp_0 &= ~(0x20); + 57 1 if (temp_0 != temp_old_0) { + 58 2 P0 = temp_0; + 59 2 P2 = P2 & 0x1f | 0xa0; + 60 2 P2 &= 0x1f; + 61 2 temp_old_0 = temp_0; + 62 2 } + 63 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 163 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 4 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 3 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Listings/main.lst b/模板/zuolan_v1标志位/prj/Listings/main.lst new file mode 100644 index 0000000..3d6fd3e --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/main.lst @@ -0,0 +1,183 @@ +C51 COMPILER V9.60.7.0 MAIN 03/10/2025 18:03:53 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\user\main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG + -OBJECTEXTEND PRINT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LED */ + 3 unsigned char ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 unsigned char Seg_Pos; + 5 unsigned char Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; + 6 unsigned char Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 7 + 8 /* */ + 9 unsigned char Uart_Buf[10]; + 10 unsigned char Uart_Rx_Index; + 11 bit Uart_flag; + 12 unsigned char Sys_Tick; + 13 /* ʱ*/ + 14 unsigned char ucRtc[3] = {11, 11, 11}; + 15 unsigned int time_all_1s; + 16 + 17 /* */ + 18 unsigned int Freq; + 19 + 20 void Data_Proc() + 21 { + 22 1 if (time_all_1s % 50 == 0) + 23 1 { + 24 2 // ʱȡ + 25 2 } + 26 1 if (time_all_1s % 100 == 0) + 27 1 { + 28 2 // ADȡ + 29 2 } + 30 1 if (time_all_1s % 500 == 0) + 31 1 { + 32 2 // ¶ȶȡ + 33 2 } + 34 1 } + 35 /* ̴*/ + 36 void Key_Proc() + 37 { + 38 1 static unsigned char Key_Val, Key_Down, Key_Up, Key_Old; + 39 1 if (time_all_1s % 10) + 40 1 return; + 41 1 Key_Val = Key_Read(); + 42 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 43 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 44 1 Key_Old = Key_Val; + 45 1 } + 46 + 47 /* ܴ*/ + 48 void Seg_Proc() + 49 { + 50 1 if (time_all_1s % 20) + 51 1 return; + 52 1 } + 53 void Led_Proc() {} + 54 void Uart_Proc() + C51 COMPILER V9.60.7.0 MAIN 03/10/2025 18:03:53 PAGE 2 + + 55 { + 56 1 if (Uart_Rx_Index == 0) + 57 1 return; + 58 1 if (Sys_Tick >= 10) + 59 1 { + 60 2 Sys_Tick = Uart_flag = 0; + 61 2 + 62 2 memset(Uart_Buf, 0, Uart_Rx_Index); + 63 2 Uart_Rx_Index = 0; + 64 2 } + 65 1 } + 66 void Timer0_Init(void) // 1@12.000MHz + 67 { + 68 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 69 1 TMOD &= 0xF0; // öʱģʽ + 70 1 TMOD |= 0x05; + 71 1 TL0 = 0; // öʱʼֵ + 72 1 TH0 = 0; // öʱʼֵ + 73 1 TF0 = 0; // TF0־ + 74 1 TR0 = 1; // ʱ0ʼʱ + 75 1 EA = 1; + 76 1 } + 77 + 78 void Timer1_Init(void) // 1@12.000MHz + 79 { + 80 1 AUXR &= 0xBF; // ʱʱ12Tģʽ + 81 1 TMOD &= 0x0F; // öʱģʽ + 82 1 TL1 = 0x18; // öʱʼֵ + 83 1 TH1 = 0xFC; // öʱʼֵ + 84 1 TF1 = 0; // TF1־ + 85 1 TR1 = 1; // ʱ1ʼʱ + 86 1 ET1 = 1; // ʹܶʱ1ж + 87 1 EA = 1; + 88 1 } + 89 + 90 void Timer1_Isr(void) interrupt 3 + 91 { + 92 1 unsigned char i; + 93 1 if (++time_all_1s == 1000) + 94 1 { + 95 2 time_all_1s = 0; + 96 2 Freq = TH0 << 8 | TL0; + 97 2 TH0 = TL0 = 0; + 98 2 } + 99 1 if (Uart_flag) + 100 1 Sys_Tick++; + 101 1 Seg_Pos = (++Seg_Pos) % 8; + 102 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 103 1 for (i = 0; i < 8; i++) + 104 1 Led_Disp(i, ucLed[i]); + 105 1 } + 106 void Uart1_Isr(void) interrupt 4 + 107 { + 108 1 if (RI) + 109 1 { + 110 2 Uart_flag = 1; + 111 2 Sys_Tick = 0; + 112 2 Uart_Buf[Uart_Rx_Index] = SBUF; + 113 2 Uart_Rx_Index++; + 114 2 RI = 0; + 115 2 } + 116 1 if (Uart_Rx_Index > 10) + C51 COMPILER V9.60.7.0 MAIN 03/10/2025 18:03:53 PAGE 3 + + 117 1 Uart_Rx_Index = 0; + 118 1 } + 119 void Delay750ms(void) //@12.000MHz + 120 { + 121 1 unsigned char data i, j, k; + 122 1 + 123 1 _nop_(); + 124 1 _nop_(); + 125 1 i = 35; + 126 1 j = 51; + 127 1 k = 182; + 128 1 do + 129 1 { + 130 2 do + 131 2 { + 132 3 while (--k) + 133 3 ; + 134 3 } while (--j); + 135 2 } while (--i); + 136 1 } + 137 + 138 void main() + 139 { + 140 1 System_Init(); + 141 1 Timer0_Init(); + 142 1 Uart1_Init(); + 143 1 Timer1_Init(); + 144 1 Set_Rtc(ucRtc); + 145 1 rd_temperature(); + 146 1 Delay750ms(); + 147 1 while (1) + 148 1 { + 149 2 Data_Proc(); + 150 2 Key_Proc(); + 151 2 Seg_Proc(); + 152 2 Uart_Proc(); + 153 2 Led_Proc(); + 154 2 } + 155 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 369 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 48 1 + IDATA SIZE = ---- ---- + BIT SIZE = 1 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Listings/onewire.lst b/模板/zuolan_v1标志位/prj/Listings/onewire.lst new file mode 100644 index 0000000..243b602 --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/onewire.lst @@ -0,0 +1,104 @@ +C51 COMPILER V9.60.7.0 ONEWIRE 03/10/2025 18:03:54 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) D + -EBUG OBJECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. + 4 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运 + -速度和试题 + 5 中对单片机时钟频率的要求,进行代码调试和修改。 + 6 */ + 7 #include "onewire.h" + 8 sbit DQ = P1 ^ 4; + 9 // + 10 void Delay_OneWire(unsigned int t) { + 11 1 unsigned char i; + 12 1 while (t--) { + 13 2 for (i = 0; i < 12; i++); + 14 2 } + 15 1 } + 16 + 17 // + 18 void Write_DS18B20(unsigned char dat) { + 19 1 unsigned char i; + 20 1 for (i = 0; i < 8; i++) { + 21 2 DQ = 0; + 22 2 DQ = dat & 0x01; + 23 2 Delay_OneWire(5); + 24 2 DQ = 1; + 25 2 dat >>= 1; + 26 2 } + 27 1 Delay_OneWire(5); + 28 1 } + 29 + 30 // + 31 unsigned char Read_DS18B20(void) { + 32 1 unsigned char i; + 33 1 unsigned char dat; + 34 1 + 35 1 for (i = 0; i < 8; i++) { + 36 2 DQ = 0; + 37 2 dat >>= 1; + 38 2 DQ = 1; + 39 2 if (DQ) { + 40 3 dat |= 0x80; + 41 3 } + 42 2 Delay_OneWire(5); + 43 2 } + 44 1 return dat; + 45 1 } + 46 + 47 // + 48 bit init_ds18b20(void) { + 49 1 bit initflag = 0; + 50 1 + 51 1 DQ = 1; + 52 1 Delay_OneWire(12); + 53 1 DQ = 0; + C51 COMPILER V9.60.7.0 ONEWIRE 03/10/2025 18:03:54 PAGE 2 + + 54 1 Delay_OneWire(80); + 55 1 DQ = 1; + 56 1 Delay_OneWire(10); + 57 1 initflag = DQ; + 58 1 Delay_OneWire(5); + 59 1 + 60 1 return initflag; + 61 1 } + 62 + 63 float rd_temperature() { + 64 1 unsigned char low, high; + 65 1 init_ds18b20(); + 66 1 Write_DS18B20(0xcc); + 67 1 Write_DS18B20(0x44); + 68 1 + 69 1 Delay_OneWire(200); + 70 1 + 71 1 init_ds18b20(); + 72 1 Write_DS18B20(0xcc); + 73 1 Write_DS18B20(0xbe); + 74 1 low = Read_DS18B20(); + 75 1 high = Read_DS18B20(); + 76 1 return (float)(high << 8 | low) * 0.0625; + 77 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 180 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Listings/seg.lst b/模板/zuolan_v1标志位/prj/Listings/seg.lst new file mode 100644 index 0000000..33403fd --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/seg.lst @@ -0,0 +1,46 @@ +C51 COMPILER V9.60.7.0 SEG 03/10/2025 18:03:55 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG + - OBJECTEXTEND PRINT(.\Listings\seg.lst) TABS(2) OBJECT(.\Objects\seg.obj) + +line level source + + 1 #include "seg.h" + 2 // 0-9 + 3 // A + 4 code unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, + 5 0x82, 0xf8, 0x80, 0x90, 0xff, 0x88}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) { + 7 1 // + 8 1 P0 = 0xff; + 9 1 P2 = P2 & 0x1f | 0xe0; + 10 1 P2 &= 0x1f; + 11 1 + 12 1 // λѡ + 13 1 P0 = 0x01 << wela; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) P0 &= 0x7f; + 20 1 P2 = P2 & 0x1f | 0xe0; + 21 1 P2 &= 0x1f; + 22 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 63 ---- + CONSTANT SIZE = 12 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Listings/uart.lst b/模板/zuolan_v1标志位/prj/Listings/uart.lst new file mode 100644 index 0000000..df07ea5 --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/uart.lst @@ -0,0 +1,42 @@ +C51 COMPILER V9.60.7.0 UART 03/10/2025 18:03:55 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBU + -G OBJECTEXTEND PRINT(.\Listings\uart.lst) TABS(2) OBJECT(.\Objects\uart.obj) + +line level source + + 1 #include "uart.h" + 2 void Uart1_Init(void) // 9600bps@12.000MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // ʹܴ1ж + 11 1 EA = 1; + 12 1 } + 13 extern char putchar(char ch) { + 14 1 SBUF = ch; + 15 1 while (TI == 0); + 16 1 TI = 0; + 17 1 return ch; + 18 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Listings/ul.lst b/模板/zuolan_v1标志位/prj/Listings/ul.lst new file mode 100644 index 0000000..44a9d78 --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Listings/ul.lst @@ -0,0 +1,72 @@ +C51 COMPILER V9.60.7.0 UL 03/10/2025 18:03:55 PAGE 1 + + +C51 COMPILER V9.60.7.0, COMPILATION OF MODULE UL +OBJECT MODULE PLACED IN .\Objects\ul.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\ul.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG + -OBJECTEXTEND PRINT(.\Listings\ul.lst) TABS(2) OBJECT(.\Objects\ul.obj) + +line level source + + 1 #include "ul.h" + 2 + 3 #include "intrins.h" + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; // 38 + 13 1 while (--i); + 14 1 } + 15 void Ut_Wave_Init() { + 16 1 unsigned char i; + 17 1 for (i = 0; i < 8; i++) { + 18 2 Tx = 1; + 19 2 Delay12us(); + 20 2 Tx = 0; + 21 2 Delay12us(); + 22 2 } + 23 1 } + 24 unsigned char Ut_Wave_Data() { + 25 1 unsigned int time; + 26 1 CH = CL = 0; + 27 1 CMOD = 0x00; + 28 1 + 29 1 EA = 0; + 30 1 Ut_Wave_Init(); + 31 1 EA = 1; + 32 1 + 33 1 CR = 1; + 34 1 while (Rx && !CF); + 35 1 CR = 0; + 36 1 if (!CF) { // us -> s 10^(-6) + 37 2 // m -> cm 10^2 + 38 2 // 10^(-4) + 39 2 // L = V*T/2=340*time/2=170*10^(-4)*time=0.017*time + 40 2 time = CH << 8 | CL; + 41 2 return (0.017 * time + 3); + 42 2 } else { + 43 2 CF = 0; + 44 2 return 0; + 45 2 } + 46 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 94 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + C51 COMPILER V9.60.7.0 UL 03/10/2025 18:03:55 PAGE 2 + + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/zuolan_v1标志位/prj/Objects/STARTUP.obj b/模板/zuolan_v1标志位/prj/Objects/STARTUP.obj new file mode 100644 index 0000000..d204072 Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/STARTUP.obj differ diff --git a/模板/zuolan_v1标志位/prj/Objects/demo_zuolan b/模板/zuolan_v1标志位/prj/Objects/demo_zuolan new file mode 100644 index 0000000..4040d4f Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/demo_zuolan differ diff --git a/模板/zuolan_v1标志位/prj/Objects/demo_zuolan.build_log.htm b/模板/zuolan_v1标志位/prj/Objects/demo_zuolan.build_log.htm new file mode 100644 index 0000000..5bd5269 --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Objects/demo_zuolan.build_log.htm @@ -0,0 +1,63 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.41.0.0 +Copyright (C) 2024 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=QFHV2-9HVGF-E5HT7-EDZG1-8BHKJ-Y5E6X + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.60.7.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.60.7.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.4.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.125.1.0 +Dialog DLL: DP51.DLL V2.69.0.0 +

Project:

+F:\competition\ű\Ƭ\blue-bridge-cup-learning\ģ\zuolan_v1־λ\prj\demo_zuolan.uvproj +Project File Date: 10/22/2024 + +

Output:

+Rebuild target 'zuolan' +assembling STARTUP.A51... +compiling main.c... +compiling ds1302.c... +compiling iic.c... +compiling init.c... +compiling key.c... +compiling led.c... +compiling onewire.c... +compiling seg.c... +compiling uart.c... +compiling ul.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_READ_RTC?DS1302 +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_AD_READ?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_DA_WRITE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_PUTCHAR?UART +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?UT_WAVE_DATA?UL +Program Size: data=78.5 xdata=0 code=2836 +".\Objects\demo_zuolan" - 0 Error(s), 10 Warning(s). +Build Time Elapsed: 00:00:02 +
+ + diff --git a/模板/zuolan_v1标志位/prj/Objects/demo_zuolan.lnp b/模板/zuolan_v1标志位/prj/Objects/demo_zuolan.lnp new file mode 100644 index 0000000..fd5e15a --- /dev/null +++ b/模板/zuolan_v1标志位/prj/Objects/demo_zuolan.lnp @@ -0,0 +1,13 @@ +".\Objects\STARTUP.obj", +".\Objects\main.obj", +".\Objects\ds1302.obj", +".\Objects\iic.obj", +".\Objects\init.obj", +".\Objects\key.obj", +".\Objects\led.obj", +".\Objects\onewire.obj", +".\Objects\seg.obj", +".\Objects\uart.obj", +".\Objects\ul.obj" +TO ".\Objects\demo_zuolan" +PRINT(".\Listings\demo_zuolan.m51") RAMSIZE(256) diff --git a/模板/zuolan_v1标志位/prj/Objects/ds1302.obj b/模板/zuolan_v1标志位/prj/Objects/ds1302.obj new file mode 100644 index 0000000..a31d17f Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/ds1302.obj differ diff --git a/模板/zuolan_v1标志位/prj/Objects/iic.obj b/模板/zuolan_v1标志位/prj/Objects/iic.obj new file mode 100644 index 0000000..edab037 Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/iic.obj differ diff --git a/模板/zuolan_v1标志位/prj/Objects/init.obj b/模板/zuolan_v1标志位/prj/Objects/init.obj new file mode 100644 index 0000000..e9cfd85 Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/init.obj differ diff --git a/模板/zuolan_v1标志位/prj/Objects/key.obj b/模板/zuolan_v1标志位/prj/Objects/key.obj new file mode 100644 index 0000000..043d3e2 Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/key.obj differ diff --git a/模板/zuolan_v1标志位/prj/Objects/led.obj b/模板/zuolan_v1标志位/prj/Objects/led.obj new file mode 100644 index 0000000..70464e5 Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/led.obj differ diff --git a/模板/zuolan_v1标志位/prj/Objects/main.obj b/模板/zuolan_v1标志位/prj/Objects/main.obj new file mode 100644 index 0000000..fd39d66 Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/main.obj differ diff --git a/模板/zuolan_v1标志位/prj/Objects/onewire.obj b/模板/zuolan_v1标志位/prj/Objects/onewire.obj new file mode 100644 index 0000000..ac7977c Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/onewire.obj differ diff --git a/模板/zuolan_v1标志位/prj/Objects/seg.obj b/模板/zuolan_v1标志位/prj/Objects/seg.obj new file mode 100644 index 0000000..399e241 Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/seg.obj differ diff --git a/模板/zuolan_v1标志位/prj/Objects/uart.obj b/模板/zuolan_v1标志位/prj/Objects/uart.obj new file mode 100644 index 0000000..0f25eb5 Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/uart.obj differ diff --git a/模板/zuolan_v1标志位/prj/Objects/ul.obj b/模板/zuolan_v1标志位/prj/Objects/ul.obj new file mode 100644 index 0000000..50243d0 Binary files /dev/null and b/模板/zuolan_v1标志位/prj/Objects/ul.obj differ diff --git a/模板/zuolan_v1标志位/prj/STARTUP.A51 b/模板/zuolan_v1标志位/prj/STARTUP.A51 new file mode 100644 index 0000000..ec99b9e --- /dev/null +++ b/模板/zuolan_v1标志位/prj/STARTUP.A51 @@ -0,0 +1,198 @@ +$NOMOD51 +;------------------------------------------------------------------------------ +; This file is part of the C51 Compiler package +; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc. +; Version 8.01 +; +; *** <<< Use Configuration Wizard in Context Menu >>> *** +;------------------------------------------------------------------------------ +; STARTUP.A51: This code is executed after processor reset. +; +; To translate this file use A51 with the following invocation: +; +; A51 STARTUP.A51 +; +; To link the modified STARTUP.OBJ file to your application use the following +; Lx51 invocation: +; +; Lx51 your object file list, STARTUP.OBJ controls +; +;------------------------------------------------------------------------------ +; +; User-defined Power-On Initialization of Memory +; +; With the following EQU statements the initialization of memory +; at processor reset can be defined: +; +; IDATALEN: IDATA memory size <0x0-0x100> +; Note: The absolute start-address of IDATA memory is always 0 +; The IDATA space overlaps physically the DATA and BIT areas. +IDATALEN EQU 80H +; +; XDATASTART: XDATA memory start address <0x0-0xFFFF> +; The absolute start address of XDATA memory +XDATASTART EQU 0 +; +; XDATALEN: XDATA memory size <0x0-0xFFFF> +; The length of XDATA memory in bytes. +XDATALEN EQU 0 +; +; PDATASTART: PDATA memory start address <0x0-0xFFFF> +; The absolute start address of PDATA memory +PDATASTART EQU 0H +; +; PDATALEN: PDATA memory size <0x0-0xFF> +; The length of PDATA memory in bytes. +PDATALEN EQU 0H +; +; +;------------------------------------------------------------------------------ +; +; Reentrant Stack Initialization +; +; The following EQU statements define the stack pointer for reentrant +; functions and initialized it: +; +; Stack Space for reentrant functions in the SMALL model. +; IBPSTACK: Enable SMALL model reentrant stack +; Stack space for reentrant functions in the SMALL model. +IBPSTACK EQU 0 ; set to 1 if small reentrant is used. +; IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF> +; Set the top of the stack to the highest location. +IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 +; +; +; Stack Space for reentrant functions in the LARGE model. +; XBPSTACK: Enable LARGE model reentrant stack +; Stack space for reentrant functions in the LARGE model. +XBPSTACK EQU 0 ; set to 1 if large reentrant is used. +; XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF> +; Set the top of the stack to the highest location. +XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1 +; +; +; Stack Space for reentrant functions in the COMPACT model. +; PBPSTACK: Enable COMPACT model reentrant stack +; Stack space for reentrant functions in the COMPACT model. +PBPSTACK EQU 0 ; set to 1 if compact reentrant is used. +; +; PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF> +; Set the top of the stack to the highest location. +PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 +; +; +;------------------------------------------------------------------------------ +; +; Memory Page for Using the Compact Model with 64 KByte xdata RAM +; Compact Model Page Definition +; +; Define the XDATA page used for PDATA variables. +; PPAGE must conform with the PPAGE set in the linker invocation. +; +; Enable pdata memory page initalization +PPAGEENABLE EQU 0 ; set to 1 if pdata object are used. +; +; PPAGE number <0x0-0xFF> +; uppermost 256-byte address of the page used for PDATA variables. +PPAGE EQU 0 +; +; SFR address which supplies uppermost address byte <0x0-0xFF> +; most 8051 variants use P2 as uppermost address byte +PPAGE_SFR DATA 0A0H +; +; +;------------------------------------------------------------------------------ + +; Standard SFR Symbols +ACC DATA 0E0H +B DATA 0F0H +SP DATA 81H +DPL DATA 82H +DPH DATA 83H + + NAME ?C_STARTUP + + +?C_C51STARTUP SEGMENT CODE +?STACK SEGMENT IDATA + + RSEG ?STACK + DS 1 + + EXTRN CODE (?C_START) + PUBLIC ?C_STARTUP + + CSEG AT 0 +?C_STARTUP: LJMP STARTUP1 + + RSEG ?C_C51STARTUP + +STARTUP1: + +IF IDATALEN <> 0 + MOV R0,#IDATALEN - 1 + CLR A +IDATALOOP: MOV @R0,A + DJNZ R0,IDATALOOP +ENDIF + +IF XDATALEN <> 0 + MOV DPTR,#XDATASTART + MOV R7,#LOW (XDATALEN) + IF (LOW (XDATALEN)) <> 0 + MOV R6,#(HIGH (XDATALEN)) +1 + ELSE + MOV R6,#HIGH (XDATALEN) + ENDIF + CLR A +XDATALOOP: MOVX @DPTR,A + INC DPTR + DJNZ R7,XDATALOOP + DJNZ R6,XDATALOOP +ENDIF + +IF PPAGEENABLE <> 0 + MOV PPAGE_SFR,#PPAGE +ENDIF + +IF PDATALEN <> 0 + MOV R0,#LOW (PDATASTART) + MOV R7,#LOW (PDATALEN) + CLR A +PDATALOOP: MOVX @R0,A + INC R0 + DJNZ R7,PDATALOOP +ENDIF + +IF IBPSTACK <> 0 +EXTRN DATA (?C_IBP) + + MOV ?C_IBP,#LOW IBPSTACKTOP +ENDIF + +IF XBPSTACK <> 0 +EXTRN DATA (?C_XBP) + + MOV ?C_XBP,#HIGH XBPSTACKTOP + MOV ?C_XBP+1,#LOW XBPSTACKTOP +ENDIF + +IF PBPSTACK <> 0 +EXTRN DATA (?C_PBP) + MOV ?C_PBP,#LOW PBPSTACKTOP +ENDIF + + MOV SP,#?STACK-1 + +; This code is required if you use L51_BANK.A51 with Banking Mode 4 +; Code Banking +; Select Bank 0 for L51_BANK.A51 Mode 4 +#if 0 +; Initialize bank mechanism to code bank 0 when using L51_BANK.A51 with Banking Mode 4. +EXTRN CODE (?B_SWITCH0) + CALL ?B_SWITCH0 ; init bank mechanism to code bank 0 +#endif +; + LJMP ?C_START + + END diff --git a/模板/zuolan_v1标志位/prj/demo_zuolan.uvgui.zuolan b/模板/zuolan_v1标志位/prj/demo_zuolan.uvgui.zuolan new file mode 100644 index 0000000..c0bcd2a --- /dev/null +++ b/模板/zuolan_v1标志位/prj/demo_zuolan.uvgui.zuolan @@ -0,0 +1,1878 @@ + + + + -6.1 + +
### uVision Project, (C) Keil Software
+ + + + + + + + + + 38003 + Registers + 115 67 + + + 346 + Code Coverage + 770 160 + + + 204 + Performance Analyzer + 930 + + + + + + 35141 + Event Statistics + + 200 50 700 + + + 1506 + Symbols + + 64 64 64 + + + 1936 + Watch 1 + + 200 133 133 + + + 1937 + Watch 2 + + 200 133 133 + + + 1935 + Call Stack + Locals + + 200 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + 466 + Source Browser + 500 + 300 + + + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 218 + 18 + 1170 + 778 + + + + 0 + + 282 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000056463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5CB5A5C6ACBBFA5C626C75652D6272696467652D6375702D6C6561726E696E675CC4A3B0E55C7A756F6C616E5F7631B1EAD6BECEBB5C757365725C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000C40000007E0000000006000080020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C40000004F00000070040000B7000000 + + + 16 + C40000007E00000070040000E6000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000BD00000038020000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000BD00000038020000 + + + 16 + 220000005100000005010000F4010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7000000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000BD00000038020000 + + + 16 + 220000005100000005010000F4010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000BD00000038020000 + + + 16 + 220000005100000005010000F4010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000006902000000060000E5020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000007C01000070040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000006C020000FD050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + C7000000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7000000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7000000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7000000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7000000660000006D0400009E000000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7000000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000BD00000038020000 + + + 16 + 220000005100000005010000F4010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000006C020000FD050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000006C020000FD050000CC020000 + + + 16 + 220000005100000005010000F4010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000006C020000FD050000CC020000 + + + 16 + 220000005100000005010000F4010000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000006C020000FD050000CC020000 + + + 16 + 220000005100000005010000F4010000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7000000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + B3030000660000006D04000073010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 966 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 476 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 2200000051000000E2000000E9000000 + + + + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFC4000000B700000070040000BB000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000C40000007E00000070040000E6000000C40000004F00000070040000B70000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFAC0300004F000000B00300008C010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000B00300007E00000070040000BB010000B00300004F000000700400008C01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFC00000004F000000C400000051020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000C000000080020000000000004F000000C0000000510200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000078010000700400007C01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000AB0100007004000027020000000000007C01000070040000F801000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF380200007C0100003C020000F801000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000510200000006000055020000010000000100001004000000010000009FFEFFFF2A010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000000000840200000006000014030000000000005502000000060000E50200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2747 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000F52656C61795F576F726B5F4D6F646596000000000000000B000F52656C61795F576F726B5F4D6F64650B53706565645F56616C7565084461635F466C61670B5265636F72645F466C61670B50776D5F436F6D70617265094D6561737572696E671344697374616E63655F53686F775F496E6465781754656D70657261747572655F417665726167655F31307805616C61726D1253797374656D436C6F636B5F436F6E6669670A4C696768745F4D6F64650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 972 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 0 + + ..\user\main.c + 0 + 1 + 1 + 1 + + 0 + + + + +
diff --git a/模板/zuolan_v1标志位/prj/demo_zuolan.uvopt b/模板/zuolan_v1标志位/prj/demo_zuolan.uvopt new file mode 100644 index 0000000..e0f6f9b --- /dev/null +++ b/模板/zuolan_v1标志位/prj/demo_zuolan.uvopt @@ -0,0 +1,313 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + + + 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 + + + + + + + + + + + + + user + 1 + 0 + 0 + 0 + + 1 + 1 + 2 + 0 + 0 + 0 + .\STARTUP.A51 + STARTUP.A51 + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + ..\user\main.c + main.c + 0 + 0 + + + + + driver + 1 + 0 + 0 + 0 + + 2 + 3 + 1 + 0 + 0 + 0 + ..\driver\ds1302.c + ds1302.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\driver\iic.c + iic.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\driver\init.c + init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + ..\driver\key.c + key.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + ..\driver\led.c + led.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + ..\driver\onewire.c + onewire.c + 0 + 0 + + + 2 + 9 + 1 + 0 + 0 + 0 + ..\driver\seg.c + seg.c + 0 + 0 + + + 2 + 10 + 1 + 0 + 0 + 0 + ..\driver\uart.c + uart.c + 0 + 0 + + + 2 + 11 + 1 + 0 + 0 + 0 + ..\driver\ul.c + ul.c + 0 + 0 + + + +
diff --git a/模板/zuolan_v1标志位/prj/demo_zuolan.uvproj b/模板/zuolan_v1标志位/prj/demo_zuolan.uvproj new file mode 100644 index 0000000..f72a0b3 --- /dev/null +++ b/模板/zuolan_v1标志位/prj/demo_zuolan.uvproj @@ -0,0 +1,445 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + 8 + + + STC15F2K60S2 Series + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + demo_zuolan + 1 + 0 + 0 + 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 + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\driver;..\user + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + user + + + STARTUP.A51 + 2 + .\STARTUP.A51 + + + main.c + 1 + ..\user\main.c + + + + + driver + + + ds1302.c + 1 + ..\driver\ds1302.c + + + iic.c + 1 + ..\driver\iic.c + + + init.c + 1 + ..\driver\init.c + + + key.c + 1 + ..\driver\key.c + + + led.c + 1 + ..\driver\led.c + + + onewire.c + 1 + ..\driver\onewire.c + + + seg.c + 1 + ..\driver\seg.c + + + uart.c + 1 + ..\driver\uart.c + + + ul.c + 1 + ..\driver\ul.c + + + + + + + +
diff --git a/模板/zuolan_v1标志位/user/main.c b/模板/zuolan_v1标志位/user/main.c new file mode 100644 index 0000000..399a6a7 --- /dev/null +++ b/模板/zuolan_v1标志位/user/main.c @@ -0,0 +1,155 @@ +#include "main.h" +/* LED */ +unsigned char ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +unsigned char Seg_Pos; +unsigned char Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; +unsigned char Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* */ +unsigned char Uart_Buf[10]; +unsigned char Uart_Rx_Index; +bit Uart_flag; +unsigned char Sys_Tick; +/* ʱ*/ +unsigned char ucRtc[3] = {11, 11, 11}; +unsigned int time_all_1s; + +/* */ +unsigned int Freq; + +void Data_Proc() +{ + if (time_all_1s % 50 == 0) + { + // ʱȡ + } + if (time_all_1s % 100 == 0) + { + // ADȡ + } + if (time_all_1s % 500 == 0) + { + // ¶ȶȡ + } +} +/* ̴*/ +void Key_Proc() +{ + static unsigned char Key_Val, Key_Down, Key_Up, Key_Old; + if (time_all_1s % 10) + return; + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; +} + +/* ܴ*/ +void Seg_Proc() +{ + if (time_all_1s % 20) + return; +} +void Led_Proc() {} +void Uart_Proc() +{ + if (Uart_Rx_Index == 0) + return; + if (Sys_Tick >= 10) + { + Sys_Tick = Uart_flag = 0; + + memset(Uart_Buf, 0, Uart_Rx_Index); + Uart_Rx_Index = 0; + } +} +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TMOD |= 0x05; + TL0 = 0; // öʱʼֵ + TH0 = 0; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + EA = 1; +} + +void Timer1_Init(void) // 1@12.000MHz +{ + AUXR &= 0xBF; // ʱʱ12Tģʽ + TMOD &= 0x0F; // öʱģʽ + TL1 = 0x18; // öʱʼֵ + TH1 = 0xFC; // öʱʼֵ + TF1 = 0; // TF1־ + TR1 = 1; // ʱ1ʼʱ + ET1 = 1; // ʹܶʱ1ж + EA = 1; +} + +void Timer1_Isr(void) interrupt 3 +{ + unsigned char i; + if (++time_all_1s == 1000) + { + time_all_1s = 0; + Freq = TH0 << 8 | TL0; + TH0 = TL0 = 0; + } + if (Uart_flag) + Sys_Tick++; + Seg_Pos = (++Seg_Pos) % 8; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + for (i = 0; i < 8; i++) + Led_Disp(i, ucLed[i]); +} +void Uart1_Isr(void) interrupt 4 +{ + if (RI) + { + Uart_flag = 1; + Sys_Tick = 0; + Uart_Buf[Uart_Rx_Index] = SBUF; + Uart_Rx_Index++; + RI = 0; + } + if (Uart_Rx_Index > 10) + Uart_Rx_Index = 0; +} +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} + +void main() +{ + System_Init(); + Timer0_Init(); + Uart1_Init(); + Timer1_Init(); + Set_Rtc(ucRtc); + rd_temperature(); + Delay750ms(); + while (1) + { + Data_Proc(); + Key_Proc(); + Seg_Proc(); + Uart_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/模板/zuolan_v1标志位/user/main.h b/模板/zuolan_v1标志位/user/main.h new file mode 100644 index 0000000..58974fc --- /dev/null +++ b/模板/zuolan_v1标志位/user/main.h @@ -0,0 +1,14 @@ +#include + +#include "ds1302.h" +#include "iic.h" +#include "init.h" +#include "intrins.h" +#include "key.h" +#include "led.h" +#include "onewire.h" +#include "seg.h" +#include "stdio.h" +#include "string.h" +#include "uart.h" +#include "ul.h" diff --git a/模板/蓝桥杯全模块测试例程.zip b/模板/蓝桥杯全模块测试例程.zip new file mode 100644 index 0000000..f962202 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程.zip differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/.vscode/settings.json b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/.vscode/settings.json new file mode 100644 index 0000000..20ca7bd --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/.vscode/settings.json @@ -0,0 +1,19 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp", + "key.h": "c" + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Init.c b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Init.h b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Key.c b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Key.h b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Led.c b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Led.c new file mode 100644 index 0000000..1c8922e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Led.c @@ -0,0 +1,75 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief +/// @param enable 0 1 +void Beep(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x40; + else + temp &= ~(0x40); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ĸ߻ǵ͵ƽ +/// @param enable 0 1 +void MOTOR(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x20; + else + temp &= ~(0x20); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Led.h b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Led.h new file mode 100644 index 0000000..1a5f92d --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Led.h @@ -0,0 +1,5 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Relay(bit enable); +void Beep(bit enable); +void MOTOR(bit enable); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Seg.c b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Seg.c new file mode 100644 index 0000000..e2d3f60 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 - +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xbf}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Seg.h b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/ds1302.c b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/ds1302.c new file mode 100644 index 0000000..9458779 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/ds1302.c @@ -0,0 +1,83 @@ +/* # DS1302代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "ds1302.h" +#include "REG52.H" +#include "intrins.h" +sbit SCK = P1 ^ 7; +sbit SDA = P2 ^ 3; +sbit RST = P1 ^ 3; +// +void Write_Ds1302(unsigned char temp) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + SCK = 0; + SDA = temp & 0x01; + temp >>= 1; + SCK = 1; + } +} + +// +void Write_Ds1302_Byte(unsigned char address, unsigned char dat) +{ + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST = 0; +} + +// +unsigned char Read_Ds1302_Byte(unsigned char address) +{ + unsigned char i, temp = 0x00; + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + for (i = 0; i < 8; i++) + { + SCK = 0; + temp >>= 1; + if (SDA) + temp |= 0x80; + SCK = 1; + } + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + SCK = 1; + _nop_(); + SDA = 0; + _nop_(); + SDA = 1; + _nop_(); + return (temp); +} +void Set_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + for (i = 0; i < 3; i++) + Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 +} +void Read_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + for (i = 0; i < 3; i++) + ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/ds1302.h b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/ds1302.h new file mode 100644 index 0000000..e8bfdf4 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/Driver/ds1302.h @@ -0,0 +1,2 @@ +void Set_Rtc(unsigned char *ucRtc); +void Read_Rtc(unsigned char *ucRtc); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Init.lst b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Init.lst new file mode 100644 index 0000000..750d945 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 03/12/2024 11:36:12 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Key.lst b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Key.lst new file mode 100644 index 0000000..3c5564f --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 03/12/2024 11:36:12 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 03/12/2024 11:36:12 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Led.lst b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Led.lst new file mode 100644 index 0000000..fa348ab --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Led.lst @@ -0,0 +1,101 @@ +C51 COMPILER V9.59.0.0 LED 03/12/2024 11:36:12 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief + 23 /// @param enable 0 1 + 24 void Beep(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~(0x40); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 /// @brief ̵ + 41 /// @param enable 0 1 + 42 void Relay(bit enable) + 43 { + 44 1 static unsigned char temp = 0x00; + 45 1 static unsigned char temp_old = 0xff; + 46 1 if (enable) + 47 1 temp |= 0x10; + 48 1 else + 49 1 temp &= ~(0x10); + 50 1 if (temp != temp_old) + 51 1 { + 52 2 P0 = temp; + 53 2 P2 = P2 & 0x1f | 0xa0; + 54 2 P2 &= 0x1f; + C51 COMPILER V9.59.0.0 LED 03/12/2024 11:36:12 PAGE 2 + + 55 2 temp_old = temp; + 56 2 } + 57 1 } + 58 /// @brief ĸ߻ǵ͵ƽ + 59 /// @param enable 0 1 + 60 void MOTOR(bit enable) + 61 { + 62 1 static unsigned char temp = 0x00; + 63 1 static unsigned char temp_old = 0xff; + 64 1 if (enable) + 65 1 temp |= 0x20; + 66 1 else + 67 1 temp &= ~(0x20); + 68 1 if (temp != temp_old) + 69 1 { + 70 2 P0 = temp; + 71 2 P2 = P2 & 0x1f | 0xa0; + 72 2 P2 &= 0x1f; + 73 2 temp_old = temp; + 74 2 } + 75 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 163 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 8 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 3 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Seg.lst b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Seg.lst new file mode 100644 index 0000000..4337aa2 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 03/12/2024 11:36:12 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 - + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xbf}; + 4 // λѡ + 5 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 20 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Uart.lst b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Ultrasonic.lst b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/ds1302.lst b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/ds1302.lst new file mode 100644 index 0000000..9ef0fd7 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 03/12/2024 11:36:12 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 03/12/2024 11:36:12 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/iic.lst b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/iic.lst new file mode 100644 index 0000000..27e3624 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/main.lst b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/main.lst new file mode 100644 index 0000000..e466141 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/main.lst @@ -0,0 +1,146 @@ +C51 COMPILER V9.59.0.0 MAIN 03/12/2024 11:36:11 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ʱ䷽ */ + 12 uchar ucRtc[3] = {0x13, 0x59, 0x50}; // ʼʱ13:59:50 + 13 + 14 /* ̷ */ + 15 uchar Key_Slow_Down; + 16 + 17 bit Time_ring; // 㱨ʱ + 18 uint time_1s; + 19 + 20 /* ̴ */ + 21 void Key_Proc() + 22 { + 23 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 24 1 if (Key_Slow_Down) + 25 1 return; + 26 1 Key_Slow_Down = 1; + 27 1 + 28 1 Key_Val = Key_Read(); + 29 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 30 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 31 1 Key_Old = Key_Val; + 32 1 } + 33 /* ܴ */ + 34 void Seg_Proc() + 35 { + 36 1 if (Seg_Slow_Down) + 37 1 return; + 38 1 Seg_Slow_Down = 1; + 39 1 Read_Rtc(ucRtc); + 40 1 Seg_Buf[0] = ucRtc[0] / 16; + 41 1 Seg_Buf[1] = ucRtc[0] % 16; + 42 1 Seg_Buf[2] = 11; //- + 43 1 Seg_Buf[3] = ucRtc[1] / 16; + 44 1 Seg_Buf[4] = ucRtc[1] % 16; + 45 1 Seg_Buf[5] = 11; //- + 46 1 Seg_Buf[6] = ucRtc[2] / 16; + 47 1 Seg_Buf[7] = ucRtc[2] % 16; + 48 1 } + 49 + 50 /* LED */ + 51 void Led_Proc() + 52 { + 53 1 if ((ucRtc[1]==0) && (ucRtc[2]== 0)) + 54 1 Time_ring = 1; + C51 COMPILER V9.59.0.0 MAIN 03/12/2024 11:36:11 PAGE 2 + + 55 1 Relay(Time_ring); + 56 1 Beep(Time_ring); + 57 1 if (Time_ring) + 58 1 { + 59 2 memset(ucLed, 1, 4); + 60 2 memset(ucLed + 4, 0, 4); + 61 2 } + 62 1 else + 63 1 { + 64 2 memset(ucLed, 0, 4); + 65 2 memset(ucLed + 4, 1, 4); + 66 2 } + 67 1 } + 68 + 69 /* ʱ0жϳʼ */ + 70 void Timer0_Init(void) // 1@12.000MHz + 71 { + 72 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 73 1 TMOD &= 0xF0; // öʱģʽ + 74 1 TL0 = 0x18; // öʱʼֵ + 75 1 TH0 = 0xFC; // öʱʼֵ + 76 1 TF0 = 0; // TF0־ + 77 1 TR0 = 1; // ʱ0ʼʱ + 78 1 ET0 = 1; + 79 1 EA = 1; + 80 1 } + 81 + 82 /* ʱ0жϺ */ + 83 void Timer0_ISR(void) interrupt 1 + 84 { + 85 1 if (++Key_Slow_Down == 10) + 86 1 Key_Slow_Down = 0; + 87 1 if (++Seg_Slow_Down == 500) + 88 1 Seg_Slow_Down = 0; + 89 1 if (++Seg_Pos == 8) + 90 1 Seg_Pos = 0; + 91 1 if (Time_ring) + 92 1 { + 93 2 if (++time_1s == 1000) + 94 2 { + 95 3 time_1s = 0; + 96 3 Time_ring = 0; + 97 3 } + 98 2 } + 99 1 else + 100 1 { + 101 2 time_1s = 0; + 102 2 } + 103 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 104 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 105 1 } + 106 + 107 void main() + 108 { + 109 1 System_Init(); + 110 1 Timer0_Init(); + 111 1 Set_Rtc(ucRtc); + 112 1 while (1) + 113 1 { + 114 2 Key_Proc(); + 115 2 Seg_Proc(); + 116 2 Led_Proc(); + C51 COMPILER V9.59.0.0 MAIN 03/12/2024 11:36:11 PAGE 3 + + 117 2 } + 118 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 374 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 36 ---- + IDATA SIZE = ---- ---- + BIT SIZE = 1 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/onewire.lst b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/onewire.lst new file mode 100644 index 0000000..c7f63e7 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/zuolan.m51 b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/zuolan.m51 new file mode 100644 index 0000000..3ab76da --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Listings/zuolan.m51 @@ -0,0 +1,694 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\ds1302.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\ds1302.obj (DS1302) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0014H UNIT ?DT?SEG + DATA 001CH 0003H UNIT _DATA_GROUP_ + 001FH 0001H *** GAP *** + BIT 0020H.0 0000H.1 UNIT ?BI?MAIN + BIT 0020H.1 0000H.1 UNIT ?BI?MOTOR?LED + BIT 0020H.2 0000H.1 UNIT _BIT_GROUP_ + 0020H.3 0000H.5 *** GAP *** + DATA 0021H 0024H UNIT ?DT?MAIN + DATA 0045H 0008H UNIT ?DT?LED + IDATA 004DH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + 0003H 0008H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 009EH UNIT ?PR?TIMER0_ISR?MAIN + CODE 00ACH 008CH UNIT ?C_C51STARTUP + CODE 0138H 007BH UNIT ?C?LIB_CODE + CODE 01B3H 007AH UNIT ?PR?KEY_READ?KEY + CODE 022DH 0054H UNIT ?C_INITSEG + CODE 0281H 004DH UNIT ?PR?LED_PROC?MAIN + CODE 02CEH 003EH UNIT ?PR?_SET_RTC?DS1302 + CODE 030CH 003DH UNIT ?PR?SEG_PROC?MAIN + CODE 0349H 003DH UNIT ?PR?_READ_DS1302_BYTE?DS1302 + CODE 0386H 003AH UNIT ?PR?_LED_DISP?LED + CODE 03C0H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 03F6H 0031H UNIT ?PR?_READ_RTC?DS1302 + CODE 0427H 0023H UNIT ?PR?BEEP?LED + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 2 + + + CODE 044AH 0023H UNIT ?PR?RELAY?LED + CODE 046DH 0023H UNIT ?PR?MOTOR?LED + CODE 0490H 001FH UNIT ?PR?KEY_PROC?MAIN + CODE 04AFH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 04CCH 001CH UNIT ?PR?_WRITE_DS1302?DS1302 + CODE 04E8H 001AH UNIT ?PR?MAIN?MAIN + CODE 0502H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0517H 0014H UNIT ?PR?_WRITE_DS1302_BYTE?DS1302 + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?_SET_RTC?DS1302 + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?_SET_RTC?DS1302 ----- ----- 001CH 0003H + +--> ?PR?_WRITE_DS1302_BYTE?DS1302 + +?PR?_WRITE_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_READ_RTC?DS1302 + +?PR?_READ_RTC?DS1302 ----- ----- 001CH 0003H + +--> ?PR?_READ_DS1302_BYTE?DS1302 + +?PR?_READ_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?LED_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?RELAY?LED + +--> ?PR?BEEP?LED + + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 3 + + +?PR?RELAY?LED 0020H.2 0000H.1 ----- ----- + +?PR?BEEP?LED 0020H.2 0000H.1 ----- ----- + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:000EH PUBLIC Timer0_ISR + D:0025H PUBLIC ucRtc + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0281H PUBLIC Led_Proc + D:0028H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:030CH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:0030H PUBLIC Seg_Buf + C:0490H PUBLIC Key_Proc + D:0038H PUBLIC Seg_Slow_Down + B:0020H.0 PUBLIC Time_ring + D:00D8H PUBLIC CCON + C:04E8H PUBLIC main + C:0502H PUBLIC Timer0_Init + D:0039H PUBLIC Key_Slow_Down + D:003AH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:003BH PUBLIC time_1s + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + D:003DH PUBLIC ucLed + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 4 + + + C:0490H LINE# 21 + C:0490H LINE# 22 + C:0490H LINE# 24 + C:0494H LINE# 26 + C:0497H LINE# 28 + C:049CH LINE# 29 + C:04A5H LINE# 30 + C:04ABH LINE# 31 + C:04AEH LINE# 32 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:030CH LINE# 34 + C:030CH LINE# 35 + C:030CH LINE# 36 + C:0310H LINE# 38 + C:0313H LINE# 39 + C:031BH LINE# 40 + C:0322H LINE# 41 + C:0328H LINE# 42 + C:032BH LINE# 43 + C:0332H LINE# 44 + C:0338H LINE# 45 + C:033BH LINE# 46 + C:0342H LINE# 47 + C:0348H LINE# 48 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0281H LINE# 51 + C:0281H LINE# 52 + C:0281H LINE# 53 + C:0289H LINE# 54 + C:028BH LINE# 55 + C:0292H LINE# 56 + C:0299H LINE# 57 + C:02A0H LINE# 58 + C:02A0H LINE# 59 + C:02ABH LINE# 60 + C:02B1H LINE# 61 + C:02B3H LINE# 63 + C:02B3H LINE# 64 + C:02BEH LINE# 65 + C:02CDH LINE# 66 + C:02CDH LINE# 67 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:0502H LINE# 70 + C:0502H LINE# 71 + C:0502H LINE# 72 + C:0505H LINE# 73 + C:0508H LINE# 74 + C:050BH LINE# 75 + C:050EH LINE# 76 + C:0510H LINE# 77 + C:0512H LINE# 78 + C:0514H LINE# 79 + C:0516H LINE# 80 + ------- ENDPROC TIMER0_INIT + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 5 + + + ------- PROC TIMER0_ISR + C:000EH LINE# 83 + C:002BH LINE# 85 + C:0033H LINE# 86 + C:0035H LINE# 87 + C:0041H LINE# 88 + C:0044H LINE# 89 + C:004CH LINE# 90 + C:004EH LINE# 91 + C:0051H LINE# 92 + C:0051H LINE# 93 + C:0062H LINE# 94 + C:0062H LINE# 95 + C:0068H LINE# 96 + C:006AH LINE# 97 + C:006AH LINE# 98 + C:006CH LINE# 100 + C:006CH LINE# 101 + C:0072H LINE# 102 + C:0072H LINE# 103 + C:0085H LINE# 104 + C:0091H LINE# 105 + ------- ENDPROC TIMER0_ISR + ------- PROC MAIN + C:04E8H LINE# 107 + C:04E8H LINE# 108 + C:04E8H LINE# 109 + C:04EBH LINE# 110 + C:04EEH LINE# 111 + C:04F7H LINE# 112 + C:04F7H LINE# 113 + C:04F7H LINE# 114 + C:04FAH LINE# 115 + C:04FDH LINE# 116 + C:0500H LINE# 117 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:044AH PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0386H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + C:046DH PUBLIC MOTOR + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 6 + + + C:0427H PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:0045H SYMBOL temp + D:0046H SYMBOL temp_old + ------- ENDDO + C:0386H LINE# 5 + C:0386H LINE# 6 + C:0386H LINE# 10 + C:0389H LINE# 11 + C:0398H LINE# 13 + C:03A6H LINE# 14 + C:03ACH LINE# 15 + C:03ACH LINE# 16 + C:03B1H LINE# 17 + C:03B9H LINE# 18 + C:03BCH LINE# 19 + C:03BFH LINE# 20 + C:03BFH LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0020H.2 SYMBOL enable + ------- DO + D:0047H SYMBOL temp + D:0048H SYMBOL temp_old + ------- ENDDO + C:0427H LINE# 24 + C:0427H LINE# 25 + C:0427H LINE# 28 + C:042AH LINE# 29 + C:042FH LINE# 31 + C:0432H LINE# 32 + C:0438H LINE# 33 + C:0438H LINE# 34 + C:043BH LINE# 35 + C:0443H LINE# 36 + C:0446H LINE# 37 + C:0449H LINE# 38 + C:0449H LINE# 39 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0020H.2 SYMBOL enable + ------- DO + D:0049H SYMBOL temp + D:004AH SYMBOL temp_old + ------- ENDDO + C:044AH LINE# 42 + C:044AH LINE# 43 + C:044AH LINE# 46 + C:044DH LINE# 47 + C:0452H LINE# 49 + C:0455H LINE# 50 + C:045BH LINE# 51 + C:045BH LINE# 52 + C:045EH LINE# 53 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 7 + + + C:0466H LINE# 54 + C:0469H LINE# 55 + C:046CH LINE# 56 + C:046CH LINE# 57 + ------- ENDPROC RELAY + ------- PROC MOTOR + B:0020H.1 SYMBOL enable + ------- DO + D:004BH SYMBOL temp + D:004CH SYMBOL temp_old + ------- ENDDO + C:046DH LINE# 60 + C:046DH LINE# 61 + C:046DH LINE# 64 + C:0470H LINE# 65 + C:0475H LINE# 67 + C:0478H LINE# 68 + C:047EH LINE# 69 + C:047EH LINE# 70 + C:0481H LINE# 71 + C:0489H LINE# 72 + C:048CH LINE# 73 + C:048FH LINE# 74 + C:048FH LINE# 75 + ------- ENDPROC MOTOR + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:03C0H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0014H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:03C0H LINE# 6 + C:03C0H LINE# 7 + C:03C0H LINE# 9 + C:03C3H LINE# 10 + C:03CBH LINE# 13 + C:03D2H LINE# 14 + C:03DAH LINE# 15 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 8 + + + C:03DDH LINE# 18 + C:03E4H LINE# 19 + C:03E7H LINE# 20 + C:03EAH LINE# 21 + C:03F2H LINE# 22 + C:03F5H LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:01B3H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:01B3H LINE# 2 + C:01B3H LINE# 3 + C:01B3H LINE# 4 + C:01B5H LINE# 5 + C:01B7H LINE# 6 + C:01B9H LINE# 7 + C:01BBH LINE# 8 + C:01BDH LINE# 9 + C:01BFH LINE# 10 + C:01C2H LINE# 11 + C:01C4H LINE# 12 + C:01C7H LINE# 13 + C:01C9H LINE# 14 + C:01CCH LINE# 15 + C:01CEH LINE# 16 + C:01D1H LINE# 17 + C:01D3H LINE# 18 + C:01D5H LINE# 19 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 9 + + + C:01D7H LINE# 20 + C:01D9H LINE# 21 + C:01DBH LINE# 22 + C:01DEH LINE# 23 + C:01E0H LINE# 24 + C:01E3H LINE# 25 + C:01E5H LINE# 26 + C:01E8H LINE# 27 + C:01EAH LINE# 28 + C:01EDH LINE# 29 + C:01EFH LINE# 30 + C:01F1H LINE# 31 + C:01F3H LINE# 32 + C:01F5H LINE# 33 + C:01F7H LINE# 34 + C:01FAH LINE# 35 + C:01FCH LINE# 36 + C:01FFH LINE# 37 + C:0201H LINE# 38 + C:0204H LINE# 39 + C:0206H LINE# 40 + C:0209H LINE# 41 + C:020BH LINE# 42 + C:020DH LINE# 43 + C:020FH LINE# 44 + C:0211H LINE# 45 + C:0213H LINE# 46 + C:0216H LINE# 47 + C:0218H LINE# 48 + C:021BH LINE# 49 + C:021DH LINE# 50 + C:0220H LINE# 51 + C:0222H LINE# 52 + C:0225H LINE# 53 + C:0227H LINE# 54 + C:0229H LINE# 55 + C:022CH LINE# 56 + C:022CH LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:04AFH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 10 + + + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:04AFH LINE# 3 + C:04AFH LINE# 4 + C:04AFH LINE# 5 + C:04B2H LINE# 6 + C:04BAH LINE# 7 + C:04BDH LINE# 9 + C:04C0H LINE# 10 + C:04C8H LINE# 11 + C:04CBH LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE DS1302 + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:03F6H PUBLIC _Read_Rtc + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:02CEH PUBLIC _Set_Rtc + C:0349H PUBLIC _Read_Ds1302_Byte + B:00A0H.3 PUBLIC SDA + B:0090H.7 PUBLIC SCK + C:0517H PUBLIC _Write_Ds1302_Byte + D:00C8H PUBLIC T2CON + C:04CCH PUBLIC _Write_Ds1302 + B:0090H.3 PUBLIC RST + D:00D0H PUBLIC PSW + ------- PROC _WRITE_DS1302 + D:0007H SYMBOL temp + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:04CCH LINE# 13 + C:04CCH LINE# 14 + C:04CCH LINE# 16 + C:04D8H LINE# 17 + C:04D8H LINE# 18 + C:04DAH LINE# 19 + C:04DEH LINE# 20 + C:04E2H LINE# 21 + C:04E4H LINE# 22 + C:04E7H LINE# 23 + ------- ENDPROC _WRITE_DS1302 + ------- PROC _WRITE_DS1302_BYTE + D:0007H SYMBOL address + D:0005H SYMBOL dat + C:0517H LINE# 26 + C:0517H LINE# 27 + C:0517H LINE# 28 + C:0519H LINE# 29 + C:051AH LINE# 30 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 11 + + + C:051CH LINE# 31 + C:051DH LINE# 32 + C:051FH LINE# 33 + C:0520H LINE# 34 + C:0523H LINE# 35 + C:0528H LINE# 36 + C:052AH LINE# 37 + ------- ENDPROC _WRITE_DS1302_BYTE + ------- PROC _READ_DS1302_BYTE + D:0007H SYMBOL address + ------- DO + D:0007H SYMBOL i + D:0005H SYMBOL temp + ------- ENDDO + C:0349H LINE# 40 + C:0349H LINE# 41 + C:0349H LINE# 42 + C:034BH LINE# 43 + C:034DH LINE# 44 + C:034EH LINE# 45 + C:0350H LINE# 46 + C:0351H LINE# 47 + C:0353H LINE# 48 + C:0354H LINE# 49 + C:0357H LINE# 50 + C:0363H LINE# 51 + C:0363H LINE# 52 + C:0365H LINE# 53 + C:0369H LINE# 54 + C:036CH LINE# 55 + C:036FH LINE# 56 + C:0371H LINE# 57 + C:0374H LINE# 58 + C:0376H LINE# 59 + C:0377H LINE# 60 + C:0379H LINE# 61 + C:037AH LINE# 62 + C:037CH LINE# 63 + C:037DH LINE# 64 + C:037FH LINE# 65 + C:0380H LINE# 66 + C:0382H LINE# 67 + C:0383H LINE# 68 + C:0385H LINE# 69 + ------- ENDPROC _READ_DS1302_BYTE + ------- PROC _SET_RTC + D:001CH SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:02CEH LINE# 70 + C:02D4H LINE# 71 + C:02D4H LINE# 73 + C:02DBH LINE# 74 + C:02E7H LINE# 75 + C:0305H LINE# 76 + ------- ENDPROC _SET_RTC + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:36:12 PAGE 12 + + + ------- PROC _READ_RTC + D:001CH SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:03F6H LINE# 78 + C:03FCH LINE# 79 + C:03FCH LINE# 81 + C:0408H LINE# 82 + C:0426H LINE# 83 + ------- ENDPROC _READ_RTC + ------- ENDMOD DS1302 + + ------- MODULE ?C?CLDOPTR + C:0138H PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTOPTR + C:0165H PUBLIC ?C?CSTOPTR + ------- ENDMOD ?C?CSTOPTR + + ------- MODULE ?C?MEMSET + C:0187H PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED + +Program Size: data=76.3 xdata=0 code=1315 +LINK/LOCATE RUN COMPLETE. 1 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/ExtDll.iex b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Init.obj b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Init.obj new file mode 100644 index 0000000..867b129 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Init.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Key.obj b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Key.obj new file mode 100644 index 0000000..fbdd959 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Key.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Led.obj b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Led.obj new file mode 100644 index 0000000..cde69f0 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Led.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Seg.obj b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Seg.obj new file mode 100644 index 0000000..b5d3720 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Seg.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Uart.obj b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Uart.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Ultrasonic.obj b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/Ultrasonic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/ds1302.obj b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/ds1302.obj new file mode 100644 index 0000000..d6ee508 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/ds1302.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/iic.obj b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/iic.obj new file mode 100644 index 0000000..88a47fa Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/iic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/main.obj b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/main.obj new file mode 100644 index 0000000..41c286f Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/main.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/onewire.obj b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/onewire.obj new file mode 100644 index 0000000..772b6d9 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/onewire.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan new file mode 100644 index 0000000..f943e64 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan differ diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan.build_log.htm b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..1215339 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan.build_log.htm @@ -0,0 +1,43 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: VDM51.DLL V1.00 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\űȫģԽ\DS1302ʱģ\User\zuolan.uvproj +Project File Date: 03/12/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling ds1302.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED +Program Size: data=76.3 xdata=0 code=1315 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 1 Warning(s). +
+ + diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan.hex b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan.hex new file mode 100644 index 0000000..844489b --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan.hex @@ -0,0 +1,107 @@ +:10022D00083D000000000000000008300A0A0A0A1C +:10023D000A0A0A0A08280000000000000000032531 +:03024D00135950F2 +:10049000E539701A7539011201B38F21E524652100 +:0E04A000FF5521F522E521F45FF52385212487 +:0104AE00222B +:10030C00E5387038753801FB7A0079251203F6E56B +:10031C0025C4540FF530E525540FF53175320BE536 +:10032C0026C4540FF533E526540FF53475350BE51B +:0D033C0027C4540FF536E527540FF537227E +:10028100E5267006E5277002D200A2009202120450 +:100291004AA20092021204277E007F043000137DDF +:1002A100017B007A00793D1201877E007F047D0089 +:1002B10080117D007B007A00793D1201877E007FED +:0D02C100047D017B007A0079411201872243 +:10050200538E7F5389F0758A18758CFCC28DD28CFC +:05051200D2A9D2AF22C6 +:03000B0002000EE2 +:10000E00C0E0C0F0C083C082C0D075D000C000C0B8 +:10001E0001C002C003C004C005C006C0070539E513 +:10002E0039640A7002F5390538AF387E00BE010614 +:10003E00BFF403753800053AE53A64087002F53AE4 +:10004E0030001B053CE53C7002053BFFAE3BBE039A +:10005E0013BFE810753B00753C00C2008006753B6F +:10006E0000753C007430253AF8E6FD7428253AF800 +:10007E00E6FBAF3A1203C0743D253AF8E6FDAF3AFF +:10008E00120386D007D006D005D004D003D002D0FC +:0E009E0001D000D0D0D082D083D0F0D0E0329C +:1004E8001204AF1205027B007A0079251202CE129F +:0A04F800049012030C12028180F53B +:100250000145000146FF0147000148FF0149000137 +:080260004AFF014B00014CFFB5 +:10038600ED600FA8077401088002C333D8FC42450C +:10039600800EA8077401088002C333D8FCF45245C6 +:1003A600E54565466013E545F4F580E5A0541F4430 +:0903B60080F5A053A01F85454607 +:0103BF00221B +:1004270030020543474080035347BFE547654860AF +:1004370011854780E5A0541F44A0F5A053A01F8550 +:02044700474824 +:010449002290 +:10044A0030020543491080035349EFE549654A6084 +:10045A0011854980E5A0541F44A0F5A053A01F852B +:02046A00494AFD +:01046C00226D +:10046D00300105434B208003534BDFE54B654C605A +:10047D0011854B80E5A0541F44A0F5A053A01F8506 +:02048D004B4CD6 +:01048F00224A +:100268000C08C0F9A4B0999282F88090FFBF0814D6 +:0802780001020408102040807F +:1003C0007580FFE5A0541F44E0F5A074142FF8E6F3 +:1003D000F580E5A0541F44C0F5A053A01F74082D5C +:1003E000F8E6F580EB600353807FE5A0541F44E0FE +:0603F000F5A053A01F223E +:1001B300E4FFC2A9C2C4D2C2D2B5D2B420B3027F73 +:1001C3000420B2027F0520B1027F0620B0027F0720 +:1001D300D2C4C2C2D2B5D2B420B3027F0820B202C5 +:1001E3007F0920B1027F0A20B0027F0BD2C4D2C2A2 +:1001F300C2B5D2B420B3027F0C20B2027F0D20B16E +:10020300027F0E20B0027F0FD2C4D2C2D2B5C2B4D5 +:1002130020B3027F1020B2027F1120B1027F12208F +:09022300B0027F13D2A975B0FFEF +:01022C0022AF +:1004AF007580FFE5A0541F4480F5A053A01FE4F50D +:0D04BF0080E5A0541F44A0F5A053A01F220B +:1004CC00E4FEEEC3940874809480500FC297EF132F +:0B04DC0092A3EFC313FFD2970E80E73E +:0104E70022F2 +:10051700C29300C29700D293001204CCAF05120415 +:04052700CCC293228D +:10034900E4FDC29300C29700D293001204CCE4FFEB +:10035900EFC39408748094805011C297EDC313FDC4 +:1003690030A303430580D2970F80E5C29300C2975B +:0C03790000D29700C2A300D2A300AF0581 +:010385002255 +:0602CE008B1C8A1D891E35 +:1002D400E4FD7F8E120517E4FCECC3940374809450 +:1002E40080501EEC25E0FFC374849FFFAB1CAA1D45 +:1002F400A91E8C82758300120138FD1205170C802B +:08030400D87D807F8E020517F1 +:0603F6008B1C8A1D891E0C +:1003FC00E4FCECC3940374809480501EEC25E0FF65 +:10040C00C374859FFF120349AB1CAA1DA91E8C82C5 +:0A041C00758300EF1201650C80D813 +:0104260022B3 +:030000000200AC4F +:0C00AC00787FE4F6D8FD75814C0200F36B +:10013800BB010CE58229F582E5833AF583E022507C +:1001480006E92582F8E622BBFE06E92582F8E222C6 +:0D015800E58229F582E5833AF583E49322E0 +:10016500F8BB010DE58229F582E5833AF583E8F0D0 +:10017500225006E92582C8F622BBFE05E92582C87C +:02018500F22264 +:10018700EF4E6012EF60010EEDBB010B89828A838F +:10019700F0A3DFFCDEFA2289F05007F709DFFCA99C +:0C01A700F022BBFEFCF309DFFCA9F022F3 +:1000B8000204E8E493A3F8E493A34003F68001F272 +:1000C80008DFF48029E493A3F85407240CC8C33349 +:1000D800C4540F4420C8834004F456800146F6DF18 +:1000E800E4800B010204081020408090022DE47E79 +:1000F800019360BCA3FF543F30E509541FFEE4930D +:10010800A360010ECF54C025E060A840B8E493A3D3 +:10011800FAE493A3F8E493A3C8C582C8CAC583CAFE +:10012800F0A3C8C582C8CAC583CADFE9DEE780BEB6 +:01028000007D +:00000001FF diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan.lnp b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan.lnp new file mode 100644 index 0000000..76d9def --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/Objects/zuolan.lnp @@ -0,0 +1,8 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\ds1302.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/main.c b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/main.c new file mode 100644 index 0000000..98ff838 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/main.c @@ -0,0 +1,118 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ʱ䷽ */ +uchar ucRtc[3] = {0x13, 0x59, 0x50}; // ʼʱ13:59:50 + +/* ̷ */ +uchar Key_Slow_Down; + +bit Time_ring; // 㱨ʱ +uint time_1s; + +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; +} +/* ܴ */ +void Seg_Proc() +{ + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + Read_Rtc(ucRtc); + Seg_Buf[0] = ucRtc[0] / 16; + Seg_Buf[1] = ucRtc[0] % 16; + Seg_Buf[2] = 11; //- + Seg_Buf[3] = ucRtc[1] / 16; + Seg_Buf[4] = ucRtc[1] % 16; + Seg_Buf[5] = 11; //- + Seg_Buf[6] = ucRtc[2] / 16; + Seg_Buf[7] = ucRtc[2] % 16; +} + +/* LED */ +void Led_Proc() +{ + if ((ucRtc[1]==0) && (ucRtc[2]== 0)) + Time_ring = 1; + Relay(Time_ring); + Beep(Time_ring); + if (Time_ring) + { + memset(ucLed, 1, 4); + memset(ucLed + 4, 0, 4); + } + else + { + memset(ucLed, 0, 4); + memset(ucLed + 4, 1, 4); + } +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (Time_ring) + { + if (++time_1s == 1000) + { + time_1s = 0; + Time_ring = 0; + } + } + else + { + time_1s = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void main() +{ + System_Init(); + Timer0_Init(); + Set_Rtc(ucRtc); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/main.h b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/main.h new file mode 100644 index 0000000..269cdbd --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/main.h @@ -0,0 +1,11 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "Init.h" +#include "ds1302.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvgui.haze b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvgui.haze new file mode 100644 index 0000000..3987519 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvgui.haze @@ -0,0 +1,1369 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 9 + 9 + 1543 + 823 + + + + 0 + + 334 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF45433A5C55736572735C68617A655C4465736B746F705CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4BDB2BDE25C445331333032CAB1D6D3C4A3BFE95C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000094010000660000000006000036020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100006600000070040000D3000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000370200000006000006030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000060300000006000019030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100006600000070040000D3000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200006600000070040000B7010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100001F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000009001000036020000000000004F000000900100001F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000A701000070040000280200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000001F020000000600002302000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000003A020000000600001D030000000000002302000000060000060300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2114 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000004544D4F449600000000000000080004544D4F44034945320443434F4E0C524541445F6F6E6577697265094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E67650000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 1 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 31 + 3 + 17 + 1 + + 0 + + + .\main.c + 63 + 1 + 7 + 1 + + 0 + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvgui.zuolan b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvgui.zuolan new file mode 100644 index 0000000..487a3e1 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvgui.zuolan @@ -0,0 +1,2583 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 26 + 26 + 1178 + 613 + + + + 0 + + 60 + 010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000000000000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000B7000000 + + + 16 + B6010000A00000009204000008010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F8010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F8010000 + + + 16 + 220000005100000005010000F3010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F8010000 + + + 16 + 220000005100000005010000F3010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F8010000 + + + 16 + 220000005100000005010000F3010000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000BD0100007004000011020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000007B01000070040000F7010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000C00100006D040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F8010000 + + + 16 + 220000005100000005010000F3010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000C00100006D040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000C00100006D040000F8010000 + + + 16 + 220000005100000005010000F3010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000110200007004000024020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000B700000070040000BB000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000B6010000A00000009204000008010000940100004F00000070040000B70000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008B010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C00000180004000000000000002030000A000000092040000DC010000E00200004F000000700400008B0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000011020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000022000000A0000000B201000062020000000000004F00000090010000110200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000077010000700400007B01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000022000000CC0100009204000048020000000000007B01000070040000F701000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF380200007B0100003C020000F701000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000A501000070040000A9010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000000000022000000FA010000920400006202000000000000A901000070040000110200000000000040820046040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2013 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000004000000000000000000000000000000000000010000000100000096000000020020500000000003503331960000000000000001000350333100000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020000001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000B7000000 + + + 16 + B6010000A00000009204000008010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000078010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005E010000 + + + 16 + 220000005100000005010000F3010000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005E010000 + + + 16 + 220000005100000005010000F3010000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005E010000 + + + 16 + 220000005100000005010000F3010000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000950100003802000011020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 940100006300000070040000B7000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000078010000 + + + 16 + 220000005100000005010000F3010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 220000005100000005010000F3010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3F020000AC0100006D040000F8010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000110200007004000024020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2618 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF94010000B700000070040000BB000000010000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000B6010000A00000009204000008010000940100004F00000070040000B70000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008B010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C00000180004000000000000002030000A000000092040000DC010000E00200004F000000700400008B0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000091010000010000000200000004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000022000000A0000000B2010000C8010000000000004F00000090010000910100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000091010000700400009501000001000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB090000018000800000010000005E020000CC01000092040000480200003C02000095010000700400001102000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF000000000000000001000000000000000100000001000000FFFFFFFF38020000950100003C0200001102000001000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000008B010000700400008F010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000000000022000000E00100009204000048020000000000008F01000070040000F70100000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2013 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000004000000000000000000000000000000000000010000000100000096000000020020500000000003503331960000000000000001000350333100000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvopt b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvopt new file mode 100644 index 0000000..096e2ea --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvopt @@ -0,0 +1,257 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + + + + + + + + + + + BIN\STCMON51.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 + STCMON51 + -S6 -B115200 -O0 + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\ds1302.c + ds1302.c + 0 + 0 + + + +
diff --git a/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvproj b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvproj new file mode 100644 index 0000000..91905d7 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS1302时钟模块/User/zuolan.uvproj @@ -0,0 +1,405 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 10 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + ds1302.c + 1 + ..\Driver\ds1302.c + + + + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/.vscode/settings.json b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Init.c b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Init.h b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Key.c b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Key.h b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Led.c b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Led.c new file mode 100644 index 0000000..1c8922e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Led.c @@ -0,0 +1,75 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief +/// @param enable 0 1 +void Beep(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x40; + else + temp &= ~(0x40); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ĸ߻ǵ͵ƽ +/// @param enable 0 1 +void MOTOR(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x20; + else + temp &= ~(0x20); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Led.h b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Led.h new file mode 100644 index 0000000..845082c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Led.h @@ -0,0 +1,4 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Beep(bit enable); +void MOTOR(bit enable); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Seg.c b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Seg.c new file mode 100644 index 0000000..d289bbd --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Seg.c @@ -0,0 +1,24 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 C F +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0xC6, 0x8E}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Seg.h b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/onewire.c b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/onewire.c new file mode 100644 index 0000000..8efce41 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/onewire.c @@ -0,0 +1,98 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "REG52.H" +#include "intrins.h" +sbit DQ = P1 ^ 4; // 单总线数据口 +void Delay4us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 9; + while (--i) + ; +} + +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + Delay4us(); + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0x44); // 启动温度转换 + Delay_OneWire(200); // 等待温度转换 + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0xbe); // 读取温度值 + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/onewire.h b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/Driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Init.lst b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Init.lst new file mode 100644 index 0000000..65511a6 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 05/02/2024 15:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Key.lst b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Key.lst new file mode 100644 index 0000000..dbcf279 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 05/02/2024 15:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 05/02/2024 15:57:34 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Led.lst b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Led.lst new file mode 100644 index 0000000..eca42d8 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Led.lst @@ -0,0 +1,101 @@ +C51 COMPILER V9.59.0.0 LED 05/02/2024 15:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief + 23 /// @param enable 0 1 + 24 void Beep(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~(0x40); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 /// @brief ̵ + 41 /// @param enable 0 1 + 42 void Relay(bit enable) + 43 { + 44 1 static unsigned char temp = 0x00; + 45 1 static unsigned char temp_old = 0xff; + 46 1 if (enable) + 47 1 temp |= 0x10; + 48 1 else + 49 1 temp &= ~(0x10); + 50 1 if (temp != temp_old) + 51 1 { + 52 2 P0 = temp; + 53 2 P2 = P2 & 0x1f | 0xa0; + 54 2 P2 &= 0x1f; + C51 COMPILER V9.59.0.0 LED 05/02/2024 15:57:34 PAGE 2 + + 55 2 temp_old = temp; + 56 2 } + 57 1 } + 58 /// @brief ĸ߻ǵ͵ƽ + 59 /// @param enable 0 1 + 60 void MOTOR(bit enable) + 61 { + 62 1 static unsigned char temp = 0x00; + 63 1 static unsigned char temp_old = 0xff; + 64 1 if (enable) + 65 1 temp |= 0x20; + 66 1 else + 67 1 temp &= ~(0x20); + 68 1 if (temp != temp_old) + 69 1 { + 70 2 P0 = temp; + 71 2 P2 = P2 & 0x1f | 0xa0; + 72 2 P2 &= 0x1f; + 73 2 temp_old = temp; + 74 2 } + 75 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 163 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 8 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 3 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Seg.lst b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Seg.lst new file mode 100644 index 0000000..bc5a9a9 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Seg.lst @@ -0,0 +1,48 @@ +C51 COMPILER V9.59.0.0 SEG 05/02/2024 15:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 C F + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0xC6, 0x8E}; + 5 // λѡ + 6 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 8 { + 9 1 // ֶ + 10 1 P0 = 0xff; + 11 1 P2 = P2 & 0x1f | 0xe0; + 12 1 + 13 1 // ѡʾλ + 14 1 P0 = seg_wela[wela]; + 15 1 P2 = P2 & 0x1f | 0xc0; + 16 1 P2 &= 0x1f; + 17 1 + 18 1 // ѡʾ + 19 1 P0 = seg_dula[dula]; + 20 1 if (point) + 21 1 P0 &= 0x7f; + 22 1 P2 = P2 & 0x1f | 0xe0; + 23 1 P2 &= 0x1f; + 24 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 21 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Uart.lst b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Ultrasonic.lst b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/ds1302.lst b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/iic.lst b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/iic.lst new file mode 100644 index 0000000..27e3624 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/main.lst b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/main.lst new file mode 100644 index 0000000..e5e34af --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/main.lst @@ -0,0 +1,156 @@ +C51 COMPILER V9.59.0.0 MAIN 05/02/2024 15:57:33 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ̷ */ + 12 uchar Key_Slow_Down; + 13 + 14 /* */ + 15 uint temperature_value_10x; // ¶ + 16 bit C_F_flag; // ϶ת϶ + 17 + 18 #define N 10 + 19 uint data_array[N]; // ڴС + 20 uint sum_temp; // ܺ + 21 uchar index_temp; // + 22 uchar arr_count; // + 23 + 24 uint filter(uint new_data) + 25 { + 26 1 sum_temp -= data_array[index_temp]; + 27 1 data_array[index_temp] = new_data; + 28 1 sum_temp += data_array[index_temp]; + 29 1 index_temp = (++index_temp) % N; // ֤index_temp0~N-1֮ת + 30 1 arr_count = (++arr_count == N + 1) ? N : arr_count; // еԪظ + 31 1 return sum_temp / arr_count; + 32 1 } + 33 + 34 /* ̴ */ + 35 void Key_Proc() + 36 { + 37 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 38 1 if (Key_Slow_Down) + 39 1 return; + 40 1 Key_Slow_Down = 1; + 41 1 + 42 1 Key_Val = Key_Read(); + 43 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 44 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 45 1 Key_Old = Key_Val; + 46 1 if (Key_Down == 4) + 47 1 C_F_flag ^= 1; + 48 1 } + 49 /* ܴ */ + 50 void Seg_Proc() + 51 { + 52 1 if (Seg_Slow_Down) + 53 1 return; + 54 1 Seg_Slow_Down = 1; + C51 COMPILER V9.59.0.0 MAIN 05/02/2024 15:57:33 PAGE 2 + + 55 1 temperature_value_10x = filter(rd_temperature() * 10); + 56 1 if (C_F_flag) + 57 1 temperature_value_10x = temperature_value_10x * 1.8 + 320; // ϶ + 58 1 Seg_Buf[0] = temperature_value_10x / 1000 % 10; + 59 1 Seg_Buf[1] = temperature_value_10x / 100 % 10; + 60 1 Seg_Buf[2] = temperature_value_10x / 10 % 10; + 61 1 Seg_Buf[3] = temperature_value_10x % 10; + 62 1 Seg_Buf[4] = (C_F_flag) ? 12 : 11; + 63 1 Seg_Point[2] = 1; + 64 1 } + 65 + 66 /* LED */ + 67 void Led_Proc() + 68 { + 69 1 } + 70 + 71 /* ʱ0жϳʼ */ + 72 void Timer0_Init(void) // 1@12.000MHz + 73 { + 74 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 75 1 TMOD &= 0xF0; // öʱģʽ + 76 1 TL0 = 0x18; // öʱʼֵ + 77 1 TH0 = 0xFC; // öʱʼֵ + 78 1 TF0 = 0; // TF0־ + 79 1 TR0 = 1; // ʱ0ʼʱ + 80 1 ET0 = 1; + 81 1 EA = 1; + 82 1 } + 83 + 84 /* ʱ0жϺ */ + 85 void Timer0_ISR(void) interrupt 1 + 86 { + 87 1 if (++Key_Slow_Down == 10) + 88 1 Key_Slow_Down = 0; + 89 1 if (++Seg_Slow_Down == 500) + 90 1 Seg_Slow_Down = 0; + 91 1 if (++Seg_Pos == 8) + 92 1 Seg_Pos = 0; + 93 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 94 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 95 1 } + 96 + 97 void Delay750ms(void) //@12.000MHz + 98 { + 99 1 unsigned char data i, j, k; + 100 1 + 101 1 _nop_(); + 102 1 _nop_(); + 103 1 i = 35; + 104 1 j = 51; + 105 1 k = 182; + 106 1 do + 107 1 { + 108 2 do + 109 2 { + 110 3 while (--k) + 111 3 ; + 112 3 } while (--j); + 113 2 } while (--i); + 114 1 } + 115 + 116 void main() + C51 COMPILER V9.59.0.0 MAIN 05/02/2024 15:57:33 PAGE 3 + + 117 { + 118 1 System_Init(); + 119 1 Timer0_Init(); + 120 1 rd_temperature(); + 121 1 Delay750ms(); + 122 1 while (1) + 123 1 { + 124 2 Key_Proc(); + 125 2 Seg_Proc(); + 126 2 Led_Proc(); + 127 2 } + 128 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 477 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 57 ---- + IDATA SIZE = ---- ---- + BIT SIZE = 1 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/onewire.lst b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/onewire.lst new file mode 100644 index 0000000..413ba90 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/onewire.lst @@ -0,0 +1,125 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 05/02/2024 15:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit DQ = P1 ^ 4; // 单总线数据口 + 10 void Delay4us(void) //@12.000MHz + 11 { + 12 1 unsigned char data i; + 13 1 + 14 1 _nop_(); + 15 1 _nop_(); + 16 1 i = 9; + 17 1 while (--i) + 18 1 ; + 19 1 } + 20 + 21 // + 22 void Delay_OneWire(unsigned int t) + 23 { + 24 1 unsigned char i; + 25 1 while (t--) + 26 1 { + 27 2 for (i = 0; i < 12; i++) + 28 2 ; + 29 2 } + 30 1 } + 31 + 32 // + 33 void Write_DS18B20(unsigned char dat) + 34 { + 35 1 unsigned char i; + 36 1 for (i = 0; i < 8; i++) + 37 1 { + 38 2 DQ = 0; + 39 2 DQ = dat & 0x01; + 40 2 Delay_OneWire(5); + 41 2 DQ = 1; + 42 2 dat >>= 1; + 43 2 } + 44 1 Delay_OneWire(5); + 45 1 } + 46 + 47 // + 48 unsigned char Read_DS18B20(void) + 49 { + 50 1 unsigned char i; + 51 1 unsigned char dat; + 52 1 + 53 1 for (i = 0; i < 8; i++) + C51 COMPILER V9.59.0.0 ONEWIRE 05/02/2024 15:57:34 PAGE 2 + + 54 1 { + 55 2 DQ = 0; + 56 2 dat >>= 1; + 57 2 DQ = 1; + 58 2 Delay4us(); + 59 2 if (DQ) + 60 2 { + 61 3 dat |= 0x80; + 62 3 } + 63 2 Delay_OneWire(5); + 64 2 } + 65 1 return dat; + 66 1 } + 67 + 68 // + 69 bit init_ds18b20(void) + 70 { + 71 1 bit initflag = 0; + 72 1 + 73 1 DQ = 1; + 74 1 Delay_OneWire(12); + 75 1 DQ = 0; + 76 1 Delay_OneWire(80); + 77 1 DQ = 1; + 78 1 Delay_OneWire(10); + 79 1 initflag = DQ; + 80 1 Delay_OneWire(5); + 81 1 + 82 1 return initflag; + 83 1 } + 84 + 85 float rd_temperature() + 86 { + 87 1 unsigned char low, high; + 88 1 init_ds18b20(); + 89 1 Write_DS18B20(0xcc); // 跳过ROM + 90 1 Write_DS18B20(0x44); // 启动温度转换 + 91 1 Delay_OneWire(200); // 等待温度转换 + 92 1 init_ds18b20(); + 93 1 Write_DS18B20(0xcc); // 跳过ROM + 94 1 Write_DS18B20(0xbe); // 读取温度值 + 95 1 low = Read_DS18B20(); + 96 1 high = Read_DS18B20(); + 97 1 return (float)(high << 8 | low) * 0.0625; + 98 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 212 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/zuolan.m51 b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/zuolan.m51 new file mode 100644 index 0000000..ea1f00b --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Listings/zuolan.m51 @@ -0,0 +1,748 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\onewire.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\onewire.obj (ONEWIRE) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0015H UNIT ?DT?SEG + 001DH 0003H *** GAP *** + BIT 0020H.0 0000H.1 UNIT ?BI?MAIN + BIT 0020H.1 0000H.1 UNIT ?BI?BEEP?LED + BIT 0020H.2 0000H.1 UNIT ?BI?RELAY?LED + BIT 0020H.3 0000H.1 UNIT ?BI?MOTOR?LED + BIT 0020H.4 0000H.1 UNIT _BIT_GROUP_ + 0020H.5 0000H.3 *** GAP *** + DATA 0021H 0039H UNIT ?DT?MAIN + DATA 005AH 0008H UNIT ?DT?LED + IDATA 0062H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0007H UNIT ?PR?DELAY4US?ONEWIRE + CODE 000AH 0001H UNIT ?PR?LED_PROC?MAIN + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0320H UNIT ?C?LIB_CODE + CODE 032EH 00A0H UNIT ?PR?SEG_PROC?MAIN + CODE 03CEH 008CH UNIT ?C_C51STARTUP + CODE 045AH 007AH UNIT ?PR?TIMER0_ISR?MAIN + CODE 04D4H 007AH UNIT ?PR?KEY_READ?KEY + CODE 054EH 005DH UNIT ?PR?_FILTER?MAIN + CODE 05ABH 0050H UNIT ?C_INITSEG + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 2 + + + CODE 05FBH 003BH UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 0636H 003AH UNIT ?PR?_LED_DISP?LED + CODE 0670H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 06A6H 002AH UNIT ?PR?KEY_PROC?MAIN + CODE 06D0H 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 06F7H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 071EH 0026H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0744H 0023H UNIT ?PR?BEEP?LED + CODE 0767H 0023H UNIT ?PR?RELAY?LED + CODE 078AH 0023H UNIT ?PR?MOTOR?LED + CODE 07ADH 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 07CBH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 07E8H 0017H UNIT ?PR?MAIN?MAIN + CODE 07FFH 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0814H 000FH UNIT ?PR?DELAY750MS?MAIN + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP + +--> CALLED SEGMENT START LENGTH +-------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.4 0000H.1 + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- + +--> ?PR?DELAY4US?ONEWIRE + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 3 + + + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?KEY_PROC?MAIN ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN ----- ----- + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?_FILTER?MAIN + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:045AH PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:054EH PUBLIC _filter + C:000AH PUBLIC Led_Proc + D:0025H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:032EH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:002DH PUBLIC data_array + D:0041H PUBLIC Seg_Buf + C:06A6H PUBLIC Key_Proc + D:0049H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:07E8H PUBLIC main + C:07FFH PUBLIC Timer0_Init + D:004AH PUBLIC Key_Slow_Down + D:004BH PUBLIC index_temp + D:004CH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + D:004DH PUBLIC arr_count + B:0088H.4 PUBLIC TR0 + B:0020H.0 PUBLIC C_F_flag + D:004EH PUBLIC sum_temp + D:0050H PUBLIC ucLed + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 4 + + + C:0814H PUBLIC Delay750ms + D:0058H PUBLIC temperature_value_10x + D:00D0H PUBLIC PSW + ------- PROC _FILTER + D:0006H SYMBOL new_data + C:054EH LINE# 24 + C:054EH LINE# 25 + C:054EH LINE# 26 + C:0565H LINE# 27 + C:0571H LINE# 28 + C:0585H LINE# 29 + C:0590H LINE# 30 + C:05A0H LINE# 31 + ------- ENDPROC _FILTER + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:06A6H LINE# 35 + C:06A6H LINE# 36 + C:06A6H LINE# 38 + C:06AAH LINE# 40 + C:06ADH LINE# 42 + C:06B2H LINE# 43 + C:06BBH LINE# 44 + C:06C1H LINE# 45 + C:06C4H LINE# 46 + C:06CAH LINE# 47 + C:06CFH LINE# 48 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:032EH LINE# 50 + C:032EH LINE# 51 + C:032EH LINE# 52 + C:0335H LINE# 54 + C:0338H LINE# 55 + C:034FH LINE# 56 + C:0352H LINE# 57 + C:0376H LINE# 58 + C:038AH LINE# 59 + C:039EH LINE# 60 + C:03B2H LINE# 61 + C:03BFH LINE# 62 + C:03CAH LINE# 63 + C:03CDH LINE# 64 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:000AH LINE# 67 + C:000AH LINE# 68 + C:000AH LINE# 69 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:07FFH LINE# 72 + C:07FFH LINE# 73 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 5 + + + C:07FFH LINE# 74 + C:0802H LINE# 75 + C:0805H LINE# 76 + C:0808H LINE# 77 + C:080BH LINE# 78 + C:080DH LINE# 79 + C:080FH LINE# 80 + C:0811H LINE# 81 + C:0813H LINE# 82 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:045AH LINE# 85 + C:0477H LINE# 87 + C:047FH LINE# 88 + C:0481H LINE# 89 + C:048DH LINE# 90 + C:0490H LINE# 91 + C:0498H LINE# 92 + C:049AH LINE# 93 + C:04ADH LINE# 94 + C:04B9H LINE# 95 + ------- ENDPROC TIMER0_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0814H LINE# 97 + C:0814H LINE# 98 + C:0814H LINE# 101 + C:0815H LINE# 102 + C:0816H LINE# 103 + C:0818H LINE# 104 + C:081AH LINE# 105 + C:081CH LINE# 107 + C:081CH LINE# 109 + C:081CH LINE# 110 + C:081EH LINE# 112 + C:0820H LINE# 113 + C:0822H LINE# 114 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:07E8H LINE# 116 + C:07E8H LINE# 117 + C:07E8H LINE# 118 + C:07EBH LINE# 119 + C:07EEH LINE# 120 + C:07F1H LINE# 121 + C:07F4H LINE# 122 + C:07F4H LINE# 123 + C:07F4H LINE# 124 + C:07F7H LINE# 125 + C:07FAH LINE# 126 + C:07FDH LINE# 127 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 6 + + + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:0767H PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0636H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + C:078AH PUBLIC MOTOR + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:0744H PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:005AH SYMBOL temp + D:005BH SYMBOL temp_old + ------- ENDDO + C:0636H LINE# 5 + C:0636H LINE# 6 + C:0636H LINE# 10 + C:0639H LINE# 11 + C:0648H LINE# 13 + C:0656H LINE# 14 + C:065CH LINE# 15 + C:065CH LINE# 16 + C:0661H LINE# 17 + C:0669H LINE# 18 + C:066CH LINE# 19 + C:066FH LINE# 20 + C:066FH LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0020H.1 SYMBOL enable + ------- DO + D:005CH SYMBOL temp + D:005DH SYMBOL temp_old + ------- ENDDO + C:0744H LINE# 24 + C:0744H LINE# 25 + C:0744H LINE# 28 + C:0747H LINE# 29 + C:074CH LINE# 31 + C:074FH LINE# 32 + C:0755H LINE# 33 + C:0755H LINE# 34 + C:0758H LINE# 35 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 7 + + + C:0760H LINE# 36 + C:0763H LINE# 37 + C:0766H LINE# 38 + C:0766H LINE# 39 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0020H.2 SYMBOL enable + ------- DO + D:005EH SYMBOL temp + D:005FH SYMBOL temp_old + ------- ENDDO + C:0767H LINE# 42 + C:0767H LINE# 43 + C:0767H LINE# 46 + C:076AH LINE# 47 + C:076FH LINE# 49 + C:0772H LINE# 50 + C:0778H LINE# 51 + C:0778H LINE# 52 + C:077BH LINE# 53 + C:0783H LINE# 54 + C:0786H LINE# 55 + C:0789H LINE# 56 + C:0789H LINE# 57 + ------- ENDPROC RELAY + ------- PROC MOTOR + B:0020H.3 SYMBOL enable + ------- DO + D:0060H SYMBOL temp + D:0061H SYMBOL temp_old + ------- ENDDO + C:078AH LINE# 60 + C:078AH LINE# 61 + C:078AH LINE# 64 + C:078DH LINE# 65 + C:0792H LINE# 67 + C:0795H LINE# 68 + C:079BH LINE# 69 + C:079BH LINE# 70 + C:079EH LINE# 71 + C:07A6H LINE# 72 + C:07A9H LINE# 73 + C:07ACH LINE# 74 + C:07ACH LINE# 75 + ------- ENDPROC MOTOR + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 8 + + + D:00A8H PUBLIC IE + C:0670H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0015H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:0670H LINE# 7 + C:0670H LINE# 8 + C:0670H LINE# 10 + C:0673H LINE# 11 + C:067BH LINE# 14 + C:0682H LINE# 15 + C:068AH LINE# 16 + C:068DH LINE# 19 + C:0694H LINE# 20 + C:0697H LINE# 21 + C:069AH LINE# 22 + C:06A2H LINE# 23 + C:06A5H LINE# 24 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:04D4H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 9 + + + D:0007H SYMBOL temp + ------- ENDDO + C:04D4H LINE# 2 + C:04D4H LINE# 3 + C:04D4H LINE# 4 + C:04D6H LINE# 5 + C:04D8H LINE# 6 + C:04DAH LINE# 7 + C:04DCH LINE# 8 + C:04DEH LINE# 9 + C:04E0H LINE# 10 + C:04E3H LINE# 11 + C:04E5H LINE# 12 + C:04E8H LINE# 13 + C:04EAH LINE# 14 + C:04EDH LINE# 15 + C:04EFH LINE# 16 + C:04F2H LINE# 17 + C:04F4H LINE# 18 + C:04F6H LINE# 19 + C:04F8H LINE# 20 + C:04FAH LINE# 21 + C:04FCH LINE# 22 + C:04FFH LINE# 23 + C:0501H LINE# 24 + C:0504H LINE# 25 + C:0506H LINE# 26 + C:0509H LINE# 27 + C:050BH LINE# 28 + C:050EH LINE# 29 + C:0510H LINE# 30 + C:0512H LINE# 31 + C:0514H LINE# 32 + C:0516H LINE# 33 + C:0518H LINE# 34 + C:051BH LINE# 35 + C:051DH LINE# 36 + C:0520H LINE# 37 + C:0522H LINE# 38 + C:0525H LINE# 39 + C:0527H LINE# 40 + C:052AH LINE# 41 + C:052CH LINE# 42 + C:052EH LINE# 43 + C:0530H LINE# 44 + C:0532H LINE# 45 + C:0534H LINE# 46 + C:0537H LINE# 47 + C:0539H LINE# 48 + C:053CH LINE# 49 + C:053EH LINE# 50 + C:0541H LINE# 51 + C:0543H LINE# 52 + C:0546H LINE# 53 + C:0548H LINE# 54 + C:054AH LINE# 55 + C:054DH LINE# 56 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 10 + + + C:054DH LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:07CBH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:07CBH LINE# 3 + C:07CBH LINE# 4 + C:07CBH LINE# 5 + C:07CEH LINE# 6 + C:07D6H LINE# 7 + C:07D9H LINE# 9 + C:07DCH LINE# 10 + C:07E4H LINE# 11 + C:07E7H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:071EH PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:07B1H PUBLIC _Delay_OneWire + C:0003H PUBLIC Delay4us + C:06D0H PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:06F7H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:05FBH PUBLIC rd_temperature + D:00D0H PUBLIC PSW + ------- PROC DELAY4US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0003H LINE# 10 + C:0003H LINE# 11 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 11 + + + C:0003H LINE# 14 + C:0004H LINE# 15 + C:0005H LINE# 16 + C:0007H LINE# 17 + C:0009H LINE# 19 + ------- ENDPROC DELAY4US + C:07ADH SYMBOL L?0023 + ------- PROC L?0022 + ------- ENDPROC L?0022 + C:07ADH SYMBOL L?0023 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:07B1H LINE# 22 + C:07B1H LINE# 23 + C:07B1H LINE# 25 + C:07BBH LINE# 26 + C:07BBH LINE# 27 + C:07CAH LINE# 29 + C:07CAH LINE# 30 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:06D0H LINE# 33 + C:06D2H LINE# 34 + C:06D2H LINE# 36 + C:06DEH LINE# 37 + C:06DEH LINE# 38 + C:06E0H LINE# 39 + C:06E4H LINE# 40 + C:06E7H LINE# 41 + C:06E9H LINE# 42 + C:06EDH LINE# 43 + C:06F0H LINE# 44 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:071EH LINE# 48 + C:071EH LINE# 49 + C:071EH LINE# 53 + C:072AH LINE# 54 + C:072AH LINE# 55 + C:072CH LINE# 56 + C:0730H LINE# 57 + C:0732H LINE# 58 + C:0735H LINE# 59 + C:0738H LINE# 60 + C:0738H LINE# 61 + C:073BH LINE# 62 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 12 + + + C:073BH LINE# 63 + C:073EH LINE# 64 + C:0741H LINE# 65 + C:0743H LINE# 66 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.4 SYMBOL initflag + ------- ENDDO + C:06F7H LINE# 69 + C:06F7H LINE# 70 + C:06F7H LINE# 71 + C:06F9H LINE# 73 + C:06FBH LINE# 74 + C:0702H LINE# 75 + C:0704H LINE# 76 + C:070BH LINE# 77 + C:070DH LINE# 78 + C:0714H LINE# 79 + C:0718H LINE# 80 + C:071BH LINE# 82 + C:071DH LINE# 83 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:05FBH LINE# 85 + C:05FBH LINE# 86 + C:05FBH LINE# 88 + C:05FEH LINE# 89 + C:0603H LINE# 90 + C:0608H LINE# 91 + C:060FH LINE# 92 + C:0612H LINE# 93 + C:0617H LINE# 94 + C:061CH LINE# 95 + C:0621H LINE# 96 + C:0624H LINE# 97 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ?C?FPADD + C:0015H PUBLIC ?C?FPADD + C:0011H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + + ------- MODULE ?C?FPMUL + C:0106H PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:0216H PUBLIC ?C?FCASTC + C:0211H PUBLIC ?C?FCASTI + C:020CH PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 15:57:34 PAGE 13 + + + + ------- MODULE ?C?CASTF + C:024AH PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?UIDIV + C:02CBH PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:0320H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED + +Program Size: data=95.5 xdata=0 code=2083 +LINK/LOCATE RUN COMPLETE. 3 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/ExtDll.iex b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Init.obj b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Init.obj new file mode 100644 index 0000000..ccb54c8 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Init.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Key.obj b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Key.obj new file mode 100644 index 0000000..7f70b9e Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Key.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Led.obj b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Led.obj new file mode 100644 index 0000000..49d5bc4 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Led.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Seg.obj b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Seg.obj new file mode 100644 index 0000000..534c508 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Seg.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Uart.obj b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Uart.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Ultrasonic.obj b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/Ultrasonic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/ds1302.obj b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/ds1302.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/iic.obj b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/iic.obj new file mode 100644 index 0000000..88a47fa Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/iic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/main.obj b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/main.obj new file mode 100644 index 0000000..ef270be Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/main.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/onewire.obj b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/onewire.obj new file mode 100644 index 0000000..9ff9923 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/onewire.obj differ diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan new file mode 100644 index 0000000..dca1071 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan differ diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan.build_log.htm b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..9534b17 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan.build_log.htm @@ -0,0 +1,47 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: STCMON51.DLL V1, 0, 10, 0 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+F:\competition\ű\blue-bridge-cup-learning\ģ\űȫģ\DS18B20¶ģ\User\zuolan.uvproj +Project File Date: 03/28/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling onewire.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED +Program Size: data=95.5 xdata=0 code=2083 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 3 Warning(s). +
+ + diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan.hex b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan.hex new file mode 100644 index 0000000..6287470 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan.hex @@ -0,0 +1,162 @@ +:1005AB000850000000000000000008410A0A0A0A77 +:0E05BB000A0A0A0A08250000000000000000DD +:10054E00E54B25E0242DF8E6FC08E6FDC3E54F9DBE +:10055E00F54FE54E9CF54EE54B25E0242DF8A6060D +:10056E0008A607E54B25E0242DF8E6FE08E6254F04 +:10057E00F54FEE354EF54E054BE54B75F00A84857D +:10058E00F04B054DE54D640B70047F0A8002AF4DB4 +:0D059E008F4DEFFD7C00AE4EAF4F0202CB43 +:1006A600E54A7025754A011204D48F21E524652197 +:1006B600FF5521F522E521F45FF523852124E52266 +:0906C60064047005A200B3920067 +:0106CF002208 +:10032E00E54960030203CD7549011205FBE4FBFAB2 +:10033E007920784112010612024A12054E8E588F0C +:10034E0059300024AC58AD59E41202117B667A661E +:10035E0079E6783F120106E4FBFA79A078431200A1 +:10036E001512024A8E588F59AE58AF597C037DE84C +:10037E001202CB7C007D0A1202CB8D41AE58AF59D2 +:10038E007C007D641202CB7C007D0A1202CB8D4272 +:10039E00AE58AF597C007D0A1202CB7C007D0A124A +:1003AE0002CB8D43AE58AF597C007D0A1202CB8D25 +:1003BE00443000047F0C80027F0B8F45752701228D +:01000A0022D3 +:1007FF00538E7F5389F0758A18758CFCC28DD28CFD +:05080F00D2A9D2AF22C6 +:03000B0002045A92 +:10045A00C0E0C0F0C083C082C0D075D000C000C068 +:10046A0001C002C003C004C005C006C007054AE5B2 +:10047A004A640A7002F54A0549AF497E00BE010680 +:10048A00BFF403754900054CE54C64087002F54C4D +:10049A007441254CF8E6FD7425254CF8E6FBAF4C73 +:1004AA001206707450254CF8E6FDAF4C120636D091 +:1004BA0007D006D005D004D003D002D001D000D096 +:0A04CA00D0D082D083D0F0D0E03211 +:0E08140000007F237E337DB6DDFEDEFCDFFAC2 +:0108220022B3 +:1007E8001207CB1207FF1205FB1208141206A612F5 +:0707F800032E12000A80F538 +:1005C900015A00015BFF015C00015DFF015E000152 +:0805D9005FFF0160000161FFFA +:10063600ED600FA8077401088002C333D8FC425A44 +:10064600800EA8077401088002C333D8FCF4525AFE +:10065600E55A655B6013E55AF4F580E5A0541F443E +:0906660080F5A053A01F855A5B2A +:01066F002268 +:10074400300105435C408003535CBFE55C655D603C +:1007540011855C80E5A0541F44A0F5A053A01F851B +:020764005C5DDA +:010766002270 +:10076700300205435E108003535EEFE55E655F6010 +:1007770011855E80E5A0541F44A0F5A053A01F85F6 +:020787005E5FB3 +:01078900224D +:10078A0030030543602080035360DFE560656160E4 +:10079A0011856080E5A0541F44A0F5A053A01F85D1 +:0207AA0060618C +:0107AC00222A +:1005E1000D08C0F9A4B0999282F88090FFC68E08D8 +:0905F100150102040810204080ED +:100670007580FFE5A0541F44E0F5A074152FF8E63F +:10068000F580E5A0541F44C0F5A053A01F74082DA9 +:10069000F8E6F580EB600353807FE5A0541F44E04B +:0606A000F5A053A01F228B +:1004D400E4FFC2A9C2C4D2C2D2B5D2B420B3027F4F +:1004E4000420B2027F0520B1027F0620B0027F07FC +:1004F400D2C4C2C2D2B5D2B420B3027F0820B202A1 +:100504007F0920B1027F0A20B0027F0BD2C4D2C27D +:10051400C2B5D2B420B3027F0C20B2027F0D20B149 +:10052400027F0E20B0027F0FD2C4D2C2D2B5C2B4B1 +:1005340020B3027F1020B2027F1120B1027F12206B +:09054400B0027F13D2A975B0FFCB +:01054D00228B +:1007CB007580FFE5A0541F4480F5A053A01FE4F5EE +:0D07DB0080E5A0541F44A0F5A053A01F22EC +:0600030000007F09DFFE92 +:0100090022D4 +:0407AD007F057E0046 +:1007B100EF1FAA0670011E4A600FE4FDEDC3940C01 +:0907C1007480948050EA0D80F36D +:0107CA00220C +:0206D000A90778 +:1006D200E4FBEBC39408748094805012C294E91333 +:1006E20092941207ADD294E9C313F90B80E47F050B +:0506F2007E000207B1CB +:10071E00E4FBEBC39408748094805017C294ECC32E +:10072E0013FCD2941200033094034304801207ADDD +:05073E000B80DFAF0499 +:010743002293 +:1006F700C204D2947F0C7E001207B1C2947F507E51 +:10070700001207B1D2947F0A7E001207B1A2949219 +:06071700041207ADA2046C +:01071D0022B9 +:1005FB001206F77FCC1206D07F441206D07FC87E3E +:10060B00001207B11206F77FCC1206D07FBE12067E +:10061B00D012071EA90712071EEFAD01FCEC120248 +:0B062B0011E4FBFA7980783D02010623 +:10000E000202B6E86480F8E933E83360110460F068 +:10001E00ED33EC337009E8FCE9FDEAFEEBFF220458 +:10002E0060DED3EB9FEA9EE99DE8C2E78CF0C2F753 +:10003E0095F0400CE8CCF8E9CDF9EACEFAEBCFFB1F +:10004E0012028185D0F05804700320D5B3E80470F5 +:10005E00075002B2D50202C092D5EC0460F7E4CC90 +:10006E00C0E0C398F8603B94186008400DD0E0FBE8 +:10007E00020298E4FBFAC9FC8028E830E406E4C9E1 +:10008E00FBE4CAFCE830E305E4C9CACBFCE854073C +:10009E006010F8C3E913F9EA13FAEB13FBEC13FC47 +:1000AE00D8F130F52FC3E49CFCEF9BFFEE9AFEEDEA +:1000BE0099FDD0E0FBEF4E4D4C701222DB03020295 +:1000CE00BDEC2CFCEF33FFEE33FEED33FDED30E7F0 +:1000DE00EB020298EF2BFFEE3AFEED39FDD0E0FB7E +:1000EE0050130BBB00030202C0ED13FDEE13FEEF27 +:0800FE0013FFEC13FC02029851 +:10010600EC4D6011E8497017ED33EC3304600DE4F3 +:10011600FCFFFEFD22E933E8330470F80202B61252 +:10012600028158046009E4CC248150062850090253 +:1001360002C02840030202BDC0E0EB4A7044B98009 +:1001460006D0E0FB0202ACEF4E701CBD8008EBFF50 +:10015600EAFEE9FD80EBE98DF0A4FEE5F00201EF91 +:10016600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89D4 +:10017600F0A42EFFE435F0CD89F0A42DFEE435F091 +:100186008067EF4E7005BD80D780C3EF8BF0A4ACBF +:10019600F0EE8BF0A42CFCE435F0F8EF8AF0A42CFA +:1001A600E5F038FCE433CB8DF0A42CFCE5F03BF80D +:1001B600EE8AF0A42CFCE5F038F8E433CF89F0A4FD +:1001C6002CFCE5F038CF3400CE89F0A42FFFE5F003 +:1001D6003EFEE433C98DF0A42EFEE5F039CD8AF05B +:1001E600A42FFFE5F03EFEE43DFD33D0E0FB5007D3 +:1001F6000BBB000F0202C0EC2CFCEF33FFEE33FE0C +:06020600ED33FD02029839 +:10020C0075F020800E75F010800575F0087D007E6D +:10021C00007F003392D530D503120320EC3340100D +:10022C00EF33FFEE33FEED33FDEC33FCD5F0ED2276 +:0E023C00E5F0247EA2D513CC92E7CDCEFF22B2 +:10024A00EDD2E7CD33EC3392D524814006E4FFFEAC +:10025A00FDFC22FCE4CFCECDCC24E0501174FF800B +:10026A00EDC3CC13CCCD13CDCE13CECF13CF0470A8 +:07027A00F030D5DE02032085 +:10028100E9D2E7C933E833F892D5EDD2E7CD33ECC3 +:0702910033FC5002B2D5223C +:10029800EC30E7100FBF000C0EBE00080DBD0004C7 +:1002A8000BEB6014A2D5EB13FCED92E7FD2274FF73 +:1002B800FCFDFEFF22E480F8A2D574FF13FC7D80CC +:0302C800E480EFE0 +:030000000203CE2A +:0C03CE00787FE4F6D8FD7581610204150B +:1002CB00BC000BBE0029EF8DF084FFADF022E4CC17 +:1002DB00F875F008EF2FFFEE33FEEC33FCEE9DECE0 +:1002EB00984005FCEE9DFE0FD5F0E9E4CEFD22ED26 +:1002FB00F8F5F0EE8420D21CFEADF075F008EF2F70 +:10030B00FFED33FD4007985006D5F0F222C398FD60 +:05031B000FD5F0EA22FD +:0E032000C3E49FFFE49EFEE49DFDE49CFC22EE +:1003DA000207E8E493A3F8E493A34003F68001F24A +:1003EA0008DFF48029E493A3F85407240CC8C33324 +:1003FA00C4540F4420C8834004F456800146F6DFF3 +:10040A00E4800B01020408102040809005ABE47ED2 +:10041A00019360BCA3FF543F30E509541FFEE493E7 +:10042A00A360010ECF54C025E060A840B8E493A3AE +:10043A00FAE493A3F8E493A3C8C582C8CAC583CAD9 +:10044A00F0A3C8C582C8CAC583CADFE9DEE780BE91 +:0105FA000000 +:00000001FF diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan.lnp b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan.lnp new file mode 100644 index 0000000..fb26e4b --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/Objects/zuolan.lnp @@ -0,0 +1,8 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\onewire.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/main.c b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/main.c new file mode 100644 index 0000000..b8398ed --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/main.c @@ -0,0 +1,128 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ̷ */ +uchar Key_Slow_Down; + +/* */ +uint temperature_value_10x; // ¶ +bit C_F_flag; // ϶ת϶ + +#define N 10 +uint data_array[N]; // ڴС +uint sum_temp; // ܺ +uchar index_temp; // +uchar arr_count; // + +uint filter(uint new_data) +{ + sum_temp -= data_array[index_temp]; + data_array[index_temp] = new_data; + sum_temp += data_array[index_temp]; + index_temp = (++index_temp) % N; // ֤index_temp0~N-1֮ת + arr_count = (++arr_count == N + 1) ? N : arr_count; // еԪظ + return sum_temp / arr_count; +} + +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 4) + C_F_flag ^= 1; +} +/* ܴ */ +void Seg_Proc() +{ + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + temperature_value_10x = filter(rd_temperature() * 10); + if (C_F_flag) + temperature_value_10x = temperature_value_10x * 1.8 + 320; // ϶ + Seg_Buf[0] = temperature_value_10x / 1000 % 10; + Seg_Buf[1] = temperature_value_10x / 100 % 10; + Seg_Buf[2] = temperature_value_10x / 10 % 10; + Seg_Buf[3] = temperature_value_10x % 10; + Seg_Buf[4] = (C_F_flag) ? 12 : 11; + Seg_Point[2] = 1; +} + +/* LED */ +void Led_Proc() +{ +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} + +void main() +{ + System_Init(); + Timer0_Init(); + rd_temperature(); + Delay750ms(); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/main.h b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/main.h new file mode 100644 index 0000000..7770adc --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/main.h @@ -0,0 +1,11 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "Init.h" +#include "onewire.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvgui.ZBright b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvgui.ZBright new file mode 100644 index 0000000..9e579f8 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvgui.ZBright @@ -0,0 +1,1905 @@ + + + + -6.1 + +
### uVision Project, (C) Keil Software
+ + + + + + + + + + 38003 + Registers + 188 122 + + + 346 + Code Coverage + 1410 160 + + + 204 + Performance Analyzer + 1570 + + + + + + 35141 + Event Statistics + + 200 50 700 + + + 1506 + Symbols + + 106 106 106 + + + 1936 + Watch 1 + + 200 133 133 + + + 1937 + Watch 2 + + 200 133 133 + + + 1935 + Call Stack + Locals + + 200 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + 466 + Source Browser + 500 + 300 + + + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 0 + 1 + + -32000 + -32000 + + + -1 + -1 + + + 87 + 320 + 2239 + 1313 + + + + 0 + + 634 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000400000002000000010000005C443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C44533138423230CEC2B6C8C4A3BFE95C4472697665725C4C65642E6300000000054C65642E6300000000C5D4F200FFFFFFFF5C443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C44533138423230CEC2B6C8C4A3BFE95C4472697665725C5365672E6300000000055365672E6300000000FFDC7800FFFFFFFF5C443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C44533138423230CEC2B6C8C4A3BFE95C4472697665725C4B65792E6300000000054B65792E6300000000BECEA100FFFFFFFF5D443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C44533138423230CEC2B6C8C4A3BFE95C4472697665725C496E69742E630000000006496E69742E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000008C020000C5000000B70800003E040000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 440100004F0000007007000013010000 + + + 16 + 8C020000C5000000B808000089010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AF030000 + + + 16 + F200000009010000320200001A020000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AF030000 + + + 16 + F2000000090100006E0200001D040000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AF030000 + + + 16 + F2000000090100006E0200001D040000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AF030000 + + + 16 + F2000000090100006E0200001D040000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000E00300006F07000090040000 + + + 16 + F200000009010000AA040000CD010000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000ED02000070070000C5030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E30300006C07000077040000 + + + 16 + F200000009010000AA040000CD010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000320200001A020000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AF030000 + + + 16 + F2000000090100006E0200001D040000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E30300006C07000077040000 + + + 16 + F200000009010000AA040000CD010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E30300006C07000077040000 + + + 16 + F2000000090100006E0200001D040000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E30300006C07000077040000 + + + 16 + F2000000090100006E0200001D040000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E30300006C07000077040000 + + + 16 + F2000000090100006E0200001D040000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 966 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000900400006F070000A3040000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 476 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000130100007007000017010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000008C020000C5000000B808000089010000440100004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000078070000C5000000B808000073030000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F00000044010000C8030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000048010000C5000000880200003E040000000000004F00000040010000C80300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E902000070070000ED02000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000004801000063030000B80800003B04000000000000ED02000070070000C503000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000ED020000BC030000C503000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000C80300006F070000CC030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000004801000042040000B70800000605000000000000CC0300006F070000900400000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2537 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 972 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 2560 + 1440 + + + + + + 1 + 0 + + 100 + 2 + + ..\Driver\Led.c + 17 + 1 + 22 + 1 + + 0 + + + ..\Driver\Seg.c + 15 + 1 + 23 + 1 + + 0 + + + ..\Driver\Key.c + 17 + 1 + 14 + 1 + + 0 + + + ..\Driver\Init.c + 1 + 1 + 12 + 1 + + 0 + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvgui.haze b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvgui.haze new file mode 100644 index 0000000..4e27696 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvgui.haze @@ -0,0 +1,2619 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 0 + 1 + 1537 + 790 + + + + 0 + + 497 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000020000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000C5D4F200FFFFFFFF64463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5C626C75652D6272696467652D6375702D6C6561726E696E675CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C44533138423230CEC2B6C8C4A3BFE95C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF69463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5C626C75652D6272696467652D6375702D6C6561726E696E675CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C44533138423230CEC2B6C8C4A3BFE95C4472697665725C4F4E45574952452E4300000000094F4E45574952452E4300000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E000000000600002D020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100007E00000070040000EB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000001602000000060000E5020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000EB000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000CF010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000FE010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100002D020000000000004F00000090010000FE0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000BF01000070040000400200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FE010000000600000202000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000310200000006000014030000000000000202000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2155 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000046461743296000000000000001000046461743203646174134C65645F426C696E6B5F466C61675F46726571014804434F4C3404434F4C3304434F4C3204434F4C3104524F573404524F573304524F573204524F5731035032330250310373627502736200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000000060000B7000000 + + + 16 + 940100007E00000070040000E6000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005F010000 + + + 16 + 220000005100000005010000F4010000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005F010000 + + + 16 + 220000005100000005010000F4010000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005F010000 + + + 16 + 220000005100000005010000F4010000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000006902000000030000E5020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 940100006300000000060000B7000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 220000005100000005010000F4010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 220000005100000005010000F4010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300008002000035050000CC020000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2618 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF94010000B700000000060000BB000000010000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000940100007E00000070040000E6000000940100004F00000000060000B70000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008C010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000BB010000E00200004F000000700400008C0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000065020000010000000200000004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E00000090010000A7010000000000004F00000090010000650200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000065020000000600006902000001000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB090000018000800000010000003C020000AB0100007004000027020000040300006902000000060000E502000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF000000000000000001000000000000000100000001000000FFFFFFFF000300006902000004030000E502000001000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000008C0100007004000090010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000000000000000000BF0100007004000027020000000000009001000070040000F80100000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2155 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000046461743296000000000000001000046461743203646174134C65645F426C696E6B5F466C61675F46726571014804434F4C3404434F4C3304434F4C3204434F4C3104524F573404524F573304524F573204524F5731035032330250310373627502736200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 2 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 58 + 30 + 57 + 1 + + 0 + + + ..\Driver\onewire.c + 0 + 70 + 1 + 1 + + 0 + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvopt b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvopt new file mode 100644 index 0000000..38c02da --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvopt @@ -0,0 +1,265 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 12 + + + + + + + + + + + BIN\STCMON51.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 + STCMON51 + -S3 -B115200 -O0 -U0 + + + + + 0 + + + 0 + 0 + 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 + + + + + + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + +
diff --git a/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvproj b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvproj new file mode 100644 index 0000000..c28df40 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/DS18B20温度模块/User/zuolan.uvproj @@ -0,0 +1,420 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + 8 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 12 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/.vscode/settings.json b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Init.c b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Init.h b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Key.c b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Key.h b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Led.c b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Led.c new file mode 100644 index 0000000..1c8922e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Led.c @@ -0,0 +1,75 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief +/// @param enable 0 1 +void Beep(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x40; + else + temp &= ~(0x40); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ĸ߻ǵ͵ƽ +/// @param enable 0 1 +void MOTOR(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x20; + else + temp &= ~(0x20); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Led.h b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Led.h new file mode 100644 index 0000000..845082c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Led.h @@ -0,0 +1,4 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Beep(bit enable); +void MOTOR(bit enable); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Seg.c b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Seg.c new file mode 100644 index 0000000..f4adea4 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 A +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0x88}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Seg.h b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/iic.c b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/iic.c new file mode 100644 index 0000000..e762928 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/iic.c @@ -0,0 +1,206 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + I2CStart(); + I2CSendByte(0x91); + I2CWaitAck(); + temp = I2CReceiveByte(); + I2CSendAck(1); + I2CStop(); + return temp; +} +// 写入的值是数字值0-255,而不是模拟值 +void Da_Write(unsigned char dat) +{ + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} + +/// @brief EEPROM 写函数 +/// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 写入的数组大小 +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); // 写入的数据的地址 + I2CWaitAck(); + while (num--) + { + I2CSendByte(*EEPROM_String++); + I2CWaitAck(); + I2C_Delay(200); + } + I2CStop(); +} +/// @brief EEPROM 读函数 +/// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 读取的数组大小 +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); + I2CWaitAck(); + + // 选择芯片为EEPROM,模式为读 + I2CStart(); + I2CSendByte(0xA1); + I2CWaitAck(); + while (num--) + { + *EEPROM_String++ = I2CReceiveByte(); + if (num) + I2CSendAck(0); + else + I2CSendAck(1); // 停止读取 + } + I2CStop(); +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/iic.h b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/iic.h new file mode 100644 index 0000000..a925af9 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/Driver/iic.h @@ -0,0 +1,5 @@ +#include "STC15F2K60S2.H" +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Init.lst b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Init.lst new file mode 100644 index 0000000..3ed6752 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 04/02/2024 09:19:48 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Key.lst b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Key.lst new file mode 100644 index 0000000..24eadba --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 04/02/2024 09:19:48 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 04/02/2024 09:19:48 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Led.lst b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Led.lst new file mode 100644 index 0000000..d579140 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Led.lst @@ -0,0 +1,101 @@ +C51 COMPILER V9.59.0.0 LED 04/02/2024 09:19:48 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief + 23 /// @param enable 0 1 + 24 void Beep(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~(0x40); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 /// @brief ̵ + 41 /// @param enable 0 1 + 42 void Relay(bit enable) + 43 { + 44 1 static unsigned char temp = 0x00; + 45 1 static unsigned char temp_old = 0xff; + 46 1 if (enable) + 47 1 temp |= 0x10; + 48 1 else + 49 1 temp &= ~(0x10); + 50 1 if (temp != temp_old) + 51 1 { + 52 2 P0 = temp; + 53 2 P2 = P2 & 0x1f | 0xa0; + 54 2 P2 &= 0x1f; + C51 COMPILER V9.59.0.0 LED 04/02/2024 09:19:48 PAGE 2 + + 55 2 temp_old = temp; + 56 2 } + 57 1 } + 58 /// @brief ĸ߻ǵ͵ƽ + 59 /// @param enable 0 1 + 60 void MOTOR(bit enable) + 61 { + 62 1 static unsigned char temp = 0x00; + 63 1 static unsigned char temp_old = 0xff; + 64 1 if (enable) + 65 1 temp |= 0x20; + 66 1 else + 67 1 temp &= ~(0x20); + 68 1 if (temp != temp_old) + 69 1 { + 70 2 P0 = temp; + 71 2 P2 = P2 & 0x1f | 0xa0; + 72 2 P2 &= 0x1f; + 73 2 temp_old = temp; + 74 2 } + 75 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 163 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 8 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 3 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Seg.lst b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Seg.lst new file mode 100644 index 0000000..d95dfa2 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 04/02/2024 09:19:48 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 A + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0x88}; + 4 // λѡ + 5 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 20 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Uart.lst b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Ultrasonic.lst b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/ds1302.lst b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/iic.lst b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/iic.lst new file mode 100644 index 0000000..77eff45 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 04/02/2024 09:19:48 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 04/02/2024 09:19:48 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 04/02/2024 09:19:48 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 04/02/2024 09:19:48 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/main.lst b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/main.lst new file mode 100644 index 0000000..86df86e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/main.lst @@ -0,0 +1,118 @@ +C51 COMPILER V9.59.0.0 MAIN 04/02/2024 09:19:47 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ̷ */ + 12 uchar Key_Slow_Down; + 13 + 14 /* */ + 15 uchar read_data; + 16 uchar write_data; + 17 /* ̴ */ + 18 void Key_Proc() + 19 { + 20 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 21 1 if (Key_Slow_Down) + 22 1 return; + 23 1 Key_Slow_Down = 1; + 24 1 + 25 1 Key_Val = Key_Read(); + 26 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 27 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 28 1 Key_Old = Key_Val; + 29 1 if (Key_Down > 4) + 30 1 write_data = Key_Down; + 31 1 if (Key_Down == 4) + 32 1 { + 33 2 EEPROM_Write(&write_data, 0, 1); + 34 2 } + 35 1 } + 36 /* ܴ */ + 37 void Seg_Proc() + 38 { + 39 1 if (Seg_Slow_Down) + 40 1 return; + 41 1 Seg_Slow_Down = 1; + 42 1 Seg_Buf[0] = read_data / 100 % 10; + 43 1 Seg_Buf[1] = read_data / 10 % 10; + 44 1 Seg_Buf[2] = read_data % 10; + 45 1 Seg_Buf[5] = write_data / 100 % 10; + 46 1 Seg_Buf[6] = write_data / 10 % 10; + 47 1 Seg_Buf[7] = write_data % 10; + 48 1 } + 49 + 50 /* LED */ + 51 void Led_Proc() + 52 { + 53 1 } + 54 + C51 COMPILER V9.59.0.0 MAIN 04/02/2024 09:19:47 PAGE 2 + + 55 /* ʱ0жϳʼ */ + 56 void Timer0_Init(void) // 1@12.000MHz + 57 { + 58 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 59 1 TMOD &= 0xF0; // öʱģʽ + 60 1 TL0 = 0x18; // öʱʼֵ + 61 1 TH0 = 0xFC; // öʱʼֵ + 62 1 TF0 = 0; // TF0־ + 63 1 TR0 = 1; // ʱ0ʼʱ + 64 1 ET0 = 1; + 65 1 EA = 1; + 66 1 } + 67 + 68 /* ʱ0жϺ */ + 69 void Timer0_ISR(void) interrupt 1 + 70 { + 71 1 if (++Key_Slow_Down == 10) + 72 1 Key_Slow_Down = 0; + 73 1 if (++Seg_Slow_Down == 500) + 74 1 Seg_Slow_Down = 0; + 75 1 if (++Seg_Pos == 8) + 76 1 Seg_Pos = 0; + 77 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 78 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 79 1 } + 80 + 81 void main() + 82 { + 83 1 System_Init(); + 84 1 Timer0_Init(); + 85 1 EEPROM_Read(&read_data, 0, 1); + 86 1 while (1) + 87 1 { + 88 2 Key_Proc(); + 89 2 Seg_Proc(); + 90 2 Led_Proc(); + 91 2 } + 92 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 319 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 33 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/onewire.lst b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/onewire.lst new file mode 100644 index 0000000..c7f63e7 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/zuolan.m51 b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/zuolan.m51 new file mode 100644 index 0000000..0d962c3 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Listings/zuolan.m51 @@ -0,0 +1,821 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\iic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\iic.obj (IIC) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0014H UNIT ?DT?SEG + 001CH 0004H *** GAP *** + BIT 0020H.0 0000H.1 UNIT ?BI?BEEP?LED + BIT 0020H.1 0000H.1 UNIT ?BI?RELAY?LED + BIT 0020H.2 0000H.1 UNIT ?BI?MOTOR?LED + 0020H.3 0000H.5 *** GAP *** + DATA 0021H 0021H UNIT ?DT?MAIN + DATA 0042H 0008H UNIT ?DT?LED + DATA 004AH 0005H UNIT _DATA_GROUP_ + IDATA 004FH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0001H UNIT ?PR?LED_PROC?MAIN + 0004H 0007H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 008CH UNIT ?C_C51STARTUP + CODE 009AH 007AH UNIT ?PR?TIMER0_ISR?MAIN + CODE 0114H 007AH UNIT ?PR?KEY_READ?KEY + CODE 018EH 004FH UNIT ?C_INITSEG + CODE 01DDH 004EH UNIT ?PR?SEG_PROC?MAIN + CODE 022BH 0042H UNIT ?PR?KEY_PROC?MAIN + CODE 026DH 0042H UNIT ?PR?_EEPROM_READ?IIC + CODE 02AFH 003AH UNIT ?PR?_LED_DISP?LED + CODE 02E9H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 031FH 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 0354H 0032H UNIT ?PR?_EEPROM_WRITE?IIC + CODE 0386H 002BH UNIT ?C?LIB_CODE + CODE 03B1H 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 2 + + + CODE 03D7H 0025H UNIT ?PR?_AD_READ?IIC + CODE 03FCH 0024H UNIT ?PR?I2CWAITACK?IIC + CODE 0420H 0023H UNIT ?PR?BEEP?LED + CODE 0443H 0023H UNIT ?PR?RELAY?LED + CODE 0466H 0023H UNIT ?PR?MOTOR?LED + CODE 0489H 001FH UNIT ?PR?MAIN?MAIN + CODE 04A8H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 04C5H 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 04DFH 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 04F7H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 050CH 0015H UNIT ?PR?_DA_WRITE?IIC + CODE 0521H 000FH UNIT ?PR?I2CSTART?IIC + CODE 0530H 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT DATA_GROUP + +--> CALLED SEGMENT START LENGTH +---------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?_EEPROM_READ?IIC + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?_EEPROM_READ?IIC 004AH 0005H + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CWAITACK?IIC ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTART?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 3 + + + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDACK?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?KEY_PROC?MAIN ----- ----- + +--> ?PR?KEY_READ?KEY + +--> ?PR?_EEPROM_WRITE?IIC + +?PR?_EEPROM_WRITE?IIC 004AH 0005H + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +--> ?PR?I2CSTOP?IIC + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:009AH PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0003H PUBLIC Led_Proc + D:0025H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:01DDH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:002DH PUBLIC read_data + D:002EH PUBLIC Seg_Buf + C:022BH PUBLIC Key_Proc + D:0036H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:0489H PUBLIC main + C:04F7H PUBLIC Timer0_Init + D:0037H PUBLIC write_data + D:0038H PUBLIC Key_Slow_Down + D:0039H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 4 + + + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + D:003AH PUBLIC ucLed + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:022BH LINE# 18 + C:022BH LINE# 19 + C:022BH LINE# 21 + C:022FH LINE# 23 + C:0232H LINE# 25 + C:0237H LINE# 26 + C:0240H LINE# 27 + C:0246H LINE# 28 + C:0249H LINE# 29 + C:0257H LINE# 30 + C:025AH LINE# 31 + C:0260H LINE# 32 + C:0260H LINE# 33 + C:026CH LINE# 34 + C:026CH LINE# 35 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:01DDH LINE# 37 + C:01DDH LINE# 38 + C:01DDH LINE# 39 + C:01E1H LINE# 41 + C:01E4H LINE# 42 + C:01F1H LINE# 43 + C:01FEH LINE# 44 + C:0207H LINE# 45 + C:0214H LINE# 46 + C:0221H LINE# 47 + C:022AH LINE# 48 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0003H LINE# 51 + C:0003H LINE# 52 + C:0003H LINE# 53 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:04F7H LINE# 56 + C:04F7H LINE# 57 + C:04F7H LINE# 58 + C:04FAH LINE# 59 + C:04FDH LINE# 60 + C:0500H LINE# 61 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 5 + + + C:0503H LINE# 62 + C:0505H LINE# 63 + C:0507H LINE# 64 + C:0509H LINE# 65 + C:050BH LINE# 66 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:009AH LINE# 69 + C:00B7H LINE# 71 + C:00BFH LINE# 72 + C:00C1H LINE# 73 + C:00CDH LINE# 74 + C:00D0H LINE# 75 + C:00D8H LINE# 76 + C:00DAH LINE# 77 + C:00EDH LINE# 78 + C:00F9H LINE# 79 + ------- ENDPROC TIMER0_ISR + ------- PROC MAIN + C:0489H LINE# 81 + C:0489H LINE# 82 + C:0489H LINE# 83 + C:048CH LINE# 84 + C:048FH LINE# 85 + C:049DH LINE# 86 + C:049DH LINE# 87 + C:049DH LINE# 88 + C:04A0H LINE# 89 + C:04A3H LINE# 90 + C:04A6H LINE# 91 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:0443H PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:02AFH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + C:0466H PUBLIC MOTOR + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:0420H PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 6 + + + D:0042H SYMBOL temp + D:0043H SYMBOL temp_old + ------- ENDDO + C:02AFH LINE# 5 + C:02AFH LINE# 6 + C:02AFH LINE# 10 + C:02B2H LINE# 11 + C:02C1H LINE# 13 + C:02CFH LINE# 14 + C:02D5H LINE# 15 + C:02D5H LINE# 16 + C:02DAH LINE# 17 + C:02E2H LINE# 18 + C:02E5H LINE# 19 + C:02E8H LINE# 20 + C:02E8H LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0020H.0 SYMBOL enable + ------- DO + D:0044H SYMBOL temp + D:0045H SYMBOL temp_old + ------- ENDDO + C:0420H LINE# 24 + C:0420H LINE# 25 + C:0420H LINE# 28 + C:0423H LINE# 29 + C:0428H LINE# 31 + C:042BH LINE# 32 + C:0431H LINE# 33 + C:0431H LINE# 34 + C:0434H LINE# 35 + C:043CH LINE# 36 + C:043FH LINE# 37 + C:0442H LINE# 38 + C:0442H LINE# 39 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0020H.1 SYMBOL enable + ------- DO + D:0046H SYMBOL temp + D:0047H SYMBOL temp_old + ------- ENDDO + C:0443H LINE# 42 + C:0443H LINE# 43 + C:0443H LINE# 46 + C:0446H LINE# 47 + C:044BH LINE# 49 + C:044EH LINE# 50 + C:0454H LINE# 51 + C:0454H LINE# 52 + C:0457H LINE# 53 + C:045FH LINE# 54 + C:0462H LINE# 55 + C:0465H LINE# 56 + C:0465H LINE# 57 + ------- ENDPROC RELAY + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 7 + + + ------- PROC MOTOR + B:0020H.2 SYMBOL enable + ------- DO + D:0048H SYMBOL temp + D:0049H SYMBOL temp_old + ------- ENDDO + C:0466H LINE# 60 + C:0466H LINE# 61 + C:0466H LINE# 64 + C:0469H LINE# 65 + C:046EH LINE# 67 + C:0471H LINE# 68 + C:0477H LINE# 69 + C:0477H LINE# 70 + C:047AH LINE# 71 + C:0482H LINE# 72 + C:0485H LINE# 73 + C:0488H LINE# 74 + C:0488H LINE# 75 + ------- ENDPROC MOTOR + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:02E9H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0014H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:02E9H LINE# 6 + C:02E9H LINE# 7 + C:02E9H LINE# 9 + C:02ECH LINE# 10 + C:02F4H LINE# 13 + C:02FBH LINE# 14 + C:0303H LINE# 15 + C:0306H LINE# 18 + C:030DH LINE# 19 + C:0310H LINE# 20 + C:0313H LINE# 21 + C:031BH LINE# 22 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 8 + + + C:031EH LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0114H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0114H LINE# 2 + C:0114H LINE# 3 + C:0114H LINE# 4 + C:0116H LINE# 5 + C:0118H LINE# 6 + C:011AH LINE# 7 + C:011CH LINE# 8 + C:011EH LINE# 9 + C:0120H LINE# 10 + C:0123H LINE# 11 + C:0125H LINE# 12 + C:0128H LINE# 13 + C:012AH LINE# 14 + C:012DH LINE# 15 + C:012FH LINE# 16 + C:0132H LINE# 17 + C:0134H LINE# 18 + C:0136H LINE# 19 + C:0138H LINE# 20 + C:013AH LINE# 21 + C:013CH LINE# 22 + C:013FH LINE# 23 + C:0141H LINE# 24 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 9 + + + C:0144H LINE# 25 + C:0146H LINE# 26 + C:0149H LINE# 27 + C:014BH LINE# 28 + C:014EH LINE# 29 + C:0150H LINE# 30 + C:0152H LINE# 31 + C:0154H LINE# 32 + C:0156H LINE# 33 + C:0158H LINE# 34 + C:015BH LINE# 35 + C:015DH LINE# 36 + C:0160H LINE# 37 + C:0162H LINE# 38 + C:0165H LINE# 39 + C:0167H LINE# 40 + C:016AH LINE# 41 + C:016CH LINE# 42 + C:016EH LINE# 43 + C:0170H LINE# 44 + C:0172H LINE# 45 + C:0174H LINE# 46 + C:0177H LINE# 47 + C:0179H LINE# 48 + C:017CH LINE# 49 + C:017EH LINE# 50 + C:0181H LINE# 51 + C:0183H LINE# 52 + C:0186H LINE# 53 + C:0188H LINE# 54 + C:018AH LINE# 55 + C:018DH LINE# 56 + C:018DH LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:04A8H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:04A8H LINE# 3 + C:04A8H LINE# 4 + C:04A8H LINE# 5 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 10 + + + C:04ABH LINE# 6 + C:04B3H LINE# 7 + C:04B6H LINE# 9 + C:04B9H LINE# 10 + C:04C1H LINE# 11 + C:04C4H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:03D7H PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:04C9H SYMBOL _I2C_Delay + C:050CH PUBLIC _Da_Write + D:00B8H PUBLIC IP + C:03B1H PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + C:026DH PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + C:0354H PUBLIC _EEPROM_Write + B:00A0H.0 PUBLIC scl + C:0521H PUBLIC I2CStart + C:04DFH PUBLIC _I2CSendAck + C:031FH PUBLIC _I2CSendByte + C:040EH PUBLIC I2CWaitAck + C:0530H PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:04C5H SYMBOL L?0036 + ------- PROC L?0035 + ------- ENDPROC L?0035 + C:04C5H SYMBOL L?0036 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:04C9H LINE# 12 + C:04C9H LINE# 13 + C:04C9H LINE# 15 + C:04C9H LINE# 16 + C:04CAH LINE# 17 + C:04CBH LINE# 18 + C:04CCH LINE# 19 + C:04CDH LINE# 20 + C:04CEH LINE# 21 + C:04CFH LINE# 22 + C:04D0H LINE# 23 + C:04D1H LINE# 24 + C:04D2H LINE# 25 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 11 + + + C:04D3H LINE# 26 + C:04D4H LINE# 27 + C:04D5H LINE# 28 + C:04D6H LINE# 29 + C:04D7H LINE# 30 + C:04D8H LINE# 31 + C:04DEH LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:0521H LINE# 35 + C:0521H LINE# 36 + C:0521H LINE# 37 + C:0523H LINE# 38 + C:0523H LINE# 39 + C:0526H LINE# 40 + C:0528H LINE# 41 + C:052DH LINE# 42 + C:052FH LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:0530H LINE# 46 + C:0530H LINE# 47 + C:0530H LINE# 48 + C:0532H LINE# 49 + C:0532H LINE# 50 + C:0535H LINE# 51 + C:0537H LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:031FH LINE# 56 + C:0321H LINE# 57 + C:0321H LINE# 60 + C:032DH LINE# 61 + C:032DH LINE# 62 + C:032FH LINE# 63 + C:0334H LINE# 64 + C:0338H LINE# 65 + C:0338H LINE# 66 + C:033AH LINE# 67 + C:033CH LINE# 69 + C:033CH LINE# 70 + C:033EH LINE# 71 + C:033EH LINE# 72 + C:0343H LINE# 73 + C:0345H LINE# 74 + C:0349H LINE# 75 + C:034EH LINE# 76 + C:0351H LINE# 78 + C:0353H LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 12 + + + D:0004H SYMBOL i + ------- ENDDO + C:03B1H LINE# 82 + C:03B1H LINE# 83 + C:03B1H LINE# 86 + C:03BDH LINE# 87 + C:03BDH LINE# 88 + C:03BDH LINE# 89 + C:03C0H LINE# 90 + C:03C4H LINE# 91 + C:03C7H LINE# 92 + C:03CAH LINE# 93 + C:03CCH LINE# 94 + C:03D1H LINE# 95 + C:03D4H LINE# 96 + C:03D6H LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + C:0403H SYMBOL L?0034 + ------- PROC L?0033 + ------- ENDPROC L?0033 + C:0403H SYMBOL L?0034 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:040EH LINE# 100 + C:040EH LINE# 101 + C:040EH LINE# 104 + C:040EH LINE# 105 + C:0411H LINE# 106 + C:0416H LINE# 107 + C:0418H LINE# 108 + C:041DH LINE# 110 + C:041FH LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:04DFH LINE# 114 + C:04DFH LINE# 115 + C:04DFH LINE# 116 + C:04E1H LINE# 117 + C:04E6H LINE# 118 + C:04EBH LINE# 119 + C:04EBH LINE# 120 + C:04EEH LINE# 121 + C:04F0H LINE# 122 + C:04F2H LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:03D7H LINE# 126 + C:03D9H LINE# 127 + C:03D9H LINE# 130 + C:03DCH LINE# 131 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 13 + + + C:03DEH LINE# 132 + C:03DEH LINE# 133 + C:03DEH LINE# 134 + C:03E1H LINE# 135 + C:03E4H LINE# 136 + C:03E9H LINE# 137 + C:03ECH LINE# 138 + C:03F1H LINE# 139 + C:03F6H LINE# 140 + C:03F9H LINE# 141 + C:03FBH LINE# 142 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:050CH LINE# 144 + C:050EH LINE# 145 + C:050EH LINE# 147 + C:0511H LINE# 148 + C:0516H LINE# 149 + C:0519H LINE# 151 + C:051BH LINE# 152 + C:051BH LINE# 153 + C:051BH LINE# 154 + C:051EH LINE# 155 + ------- ENDPROC _DA_WRITE + ------- PROC _EEPROM_WRITE + D:004AH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:004EH SYMBOL num + C:0354H LINE# 162 + C:035AH LINE# 163 + C:035AH LINE# 165 + C:035AH LINE# 166 + C:035AH LINE# 167 + C:035AH LINE# 169 + C:035AH LINE# 170 + C:035DH LINE# 171 + C:0364H LINE# 172 + C:0364H LINE# 173 + C:0379H LINE# 174 + C:037CH LINE# 175 + C:0381H LINE# 176 + C:0383H LINE# 177 + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:004AH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:004EH SYMBOL num + C:026DH LINE# 183 + C:0273H LINE# 184 + C:0273H LINE# 186 + C:0273H LINE# 187 + C:0273H LINE# 188 + C:0273H LINE# 190 + C:0273H LINE# 191 + C:0276H LINE# 194 + C:0279H LINE# 195 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/02/2024 09:19:48 PAGE 14 + + + C:027EH LINE# 196 + C:0281H LINE# 197 + C:0288H LINE# 198 + C:0288H LINE# 199 + C:029DH LINE# 200 + C:02A1H LINE# 201 + C:02A5H LINE# 203 + C:02AAH LINE# 204 + C:02ACH LINE# 205 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ?C?CLDPTR + C:0386H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CSTPTR + C:039FH PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_AD_READ?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_DA_WRITE?IIC + +Program Size: data=75.3 xdata=0 code=1333 +LINK/LOCATE RUN COMPLETE. 5 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Init.obj b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Init.obj new file mode 100644 index 0000000..8a011f3 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Init.obj differ diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Key.obj b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Key.obj new file mode 100644 index 0000000..ba61401 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Key.obj differ diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Led.obj b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Led.obj new file mode 100644 index 0000000..325df12 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Led.obj differ diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Seg.obj b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Seg.obj new file mode 100644 index 0000000..4bee1c2 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Seg.obj differ diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Uart.obj b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Uart.obj differ diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Ultrasonic.obj b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/Ultrasonic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/ds1302.obj b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/ds1302.obj differ diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/iic.obj b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/iic.obj new file mode 100644 index 0000000..c3bcbd1 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/iic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/main.obj b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/main.obj new file mode 100644 index 0000000..6719a7e Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/main.obj differ diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/onewire.obj b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/onewire.obj new file mode 100644 index 0000000..772b6d9 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/onewire.obj differ diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan new file mode 100644 index 0000000..4a8e1bc Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan differ diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan.build_log.htm b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..ee6f446 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan.build_log.htm @@ -0,0 +1,51 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 + Target DLL: VDM51.DLL +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\blue-bridge-cup-learning\ģ\űȫģ\EEPROM洢ģ\User\zuolan.uvproj +Project File Date: 03/28/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling iic.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_AD_READ?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_DA_WRITE?IIC +Program Size: data=75.3 xdata=0 code=1333 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 5 Warning(s). +
+ + diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan.hex b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan.hex new file mode 100644 index 0000000..b80e5fd --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan.hex @@ -0,0 +1,117 @@ +:10018E00083A0000000000000000082E0A0A0A0AC1 +:0E019E000A0A0A0A08250000000000000000FE +:10022B00E538703D7538011201148F21E5246521E5 +:10023B00FF5521F522E521F45FF523852124AF221B +:10024B007E00D3EF9404748094804003852237EFB3 +:10025B0064044E700CFB7A007937754E01FD120366 +:01026B00543E +:01026C00226F +:1001DD00E5367049753601E52D75F0648475F00AC4 +:1001ED008485F02EE52D75F00A8475F00A8485F06E +:1001FD002FE52D75F00A8485F030E53775F06484B0 +:10020D0075F00A8485F033E53775F00A8475F00AC8 +:0E021D008485F034E53775F00A8485F03522CB +:0100030022DA +:1004F700538E7F5389F0758A18758CFCC28DD28C08 +:05050700D2A9D2AF22D1 +:03000B0002009A56 +:10009A00C0E0C0F0C083C082C0D075D000C000C02C +:1000AA0001C002C003C004C005C006C0070538E588 +:1000BA0038640A7002F5380536AF367E00BE01068E +:1000CA00BFF4037536000539E53964087002F5395D +:1000DA00742E2539F8E6FD74252539F8E6FBAF3983 +:1000EA001202E9743A2539F8E6FDAF391202AFD0A7 +:1000FA0007D006D005D004D003D002D001D000D05A +:0A010A00D0D082D083D0F0D0E032D4 +:100489001204A81204F77B007A00792D754E01E455 +:0F049900FD12026D12022B1201DD12000380F51D +:1001AC000142000143FF0144000145FF01460001EB +:0801BC0047FF0148000149FF63 +:1002AF00ED600FA8077401088002C333D8FC4242E7 +:1002BF00800EA8077401088002C333D8FCF45242A1 +:1002CF00E54265436013E542F4F580E5A0541F4411 +:0902DF0080F5A053A01F854243E5 +:0102E80022F3 +:1004200030000543444080035344BFE544654560C4 +:1004300011854480E5A0541F44A0F5A053A01F855A +:02044000444531 +:010442002297 +:1004430030010543461080035346EFE54665476098 +:1004530011854680E5A0541F44A0F5A053A01F8535 +:0204630046470A +:010465002274 +:1004660030020543482080035348DFE5486549606C +:1004760011854880E5A0541F44A0F5A053A01F8510 +:020486004849E3 +:010488002251 +:1001C4000C08C0F9A4B0999282F88090FF880814B2 +:0801D400010204081020408024 +:1002E9007580FFE5A0541F44E0F5A074142FF8E6CB +:1002F900F580E5A0541F44C0F5A053A01F74082D34 +:10030900F8E6F580EB600353807FE5A0541F44E0D5 +:06031900F5A053A01F2215 +:10011400E4FFC2A9C2C4D2C2D2B5D2B420B3027F12 +:100124000420B2027F0520B1027F0620B0027F07BF +:10013400D2C4C2C2D2B5D2B420B3027F0820B20264 +:100144007F0920B1027F0A20B0027F0BD2C4D2C241 +:10015400C2B5D2B420B3027F0C20B2027F0D20B10D +:10016400027F0E20B0027F0FD2C4D2C2D2B5C2B475 +:1001740020B3027F1020B2027F1120B1027F12202F +:09018400B0027F13D2A975B0FF8F +:01018D00224F +:1004A8007580FFE5A0541F4480F5A053A01FE4F514 +:0D04B80080E5A0541F44A0F5A053A01F2212 +:0404C500D2A07F053D +:1004C900000000000000000000000000000000AE75 +:0604D900071FEE70EB228C +:0F052100D2A11204C5C2A17F051204C9C2A02233 +:0C053000C2A11204C5D2A17F050204C9BB +:02031F00AD0728 +:10032100E4FCECC39408748094805024C2A07F053F +:100331001204C9ED30E704D2A18002C2A17F0512E7 +:1003410004C9D2A0ED25E0FD7F051204C90C80D2BD +:02035100C2A048 +:010353002287 +:1003B100E4FCECC394087480948050171204C5EDDA +:1003C10025E0FD30A103430501C2A07F051204C948 +:0503D1000C80DFAF0508 +:0103D6002204 +:1003FC00AB051205217FA012031F12040EAF0312CE +:02040C00031FCC +:10040E001204C5A2A1E433FDC2A07F051204C9AF38 +:01041E0005D8 +:01041F0022BA +:1004DF00C2A0EF24FF92A17F051204C91204C5C266 +:0804EF00A0D2A17F050204C99F +:0203D700AB0772 +:1003D9001205217F901204031205217F9112031F38 +:1003E90012040E1203B1AD077F011204DF120530AA +:0203F900AF054E +:0103FB0022DF +:10050C00AB071205217F9012031F12040E7F4112BC +:05051C0004030205309C +:100354008B4A8A4B894C1203FCAF4E154EEF601F3B +:10036400AB4A054CE54CAA4B7002054B14F9120339 +:1003740086FF12031F12040E7FC81204C980DA021A +:02038400053042 +:10026D008B4A8A4B894C1203FC1205217FA1120384 +:10027D001F12040EAF4E154EEF60241203B1AB4AA0 +:10028D00054CE54CAA4B7002054B14F9EF12039F78 +:10029D00E54E6004E4FF80027F011204DF80D50289 +:0202AD0005301A +:0300000002000EED +:0C000E00787FE4F6D8FD75814E020055A5 +:10038600BB010689828A83E0225002E722BBFE0275 +:09039600E32289828A83E49322A8 +:10039F00BB010689828A83F0225002F722BBFE013D +:0203AF00F32237 +:10001A00020489E493A3F8E493A34003F68001F26F +:10002A0008DFF48029E493A3F85407240CC8C333E7 +:10003A00C4540F4420C8834004F456800146F6DFB6 +:10004A00E4800B010204081020408090018EE47EB7 +:10005A00019360BCA3FF543F30E509541FFEE493AB +:10006A00A360010ECF54C025E060A840B8E493A372 +:10007A00FAE493A3F8E493A3C8C582C8CAC583CA9D +:10008A00F0A3C8C582C8CAC583CADFE9DEE780BE55 +:0101DC000022 +:00000001FF diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan.lnp b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan.lnp new file mode 100644 index 0000000..f151577 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/Objects/zuolan.lnp @@ -0,0 +1,8 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\iic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/main.c b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/main.c new file mode 100644 index 0000000..03e2322 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/main.c @@ -0,0 +1,92 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ̷ */ +uchar Key_Slow_Down; + +/* */ +uchar read_data; +uchar write_data; +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down > 4) + write_data = Key_Down; + if (Key_Down == 4) + { + EEPROM_Write(&write_data, 0, 1); + } +} +/* ܴ */ +void Seg_Proc() +{ + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + Seg_Buf[0] = read_data / 100 % 10; + Seg_Buf[1] = read_data / 10 % 10; + Seg_Buf[2] = read_data % 10; + Seg_Buf[5] = write_data / 100 % 10; + Seg_Buf[6] = write_data / 10 % 10; + Seg_Buf[7] = write_data % 10; +} + +/* LED */ +void Led_Proc() +{ +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void main() +{ + System_Init(); + Timer0_Init(); + EEPROM_Read(&read_data, 0, 1); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/main.h b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/main.h new file mode 100644 index 0000000..099a6dd --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/main.h @@ -0,0 +1,11 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "Init.h" +#include "iic.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvgui.ZBright b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvgui.ZBright new file mode 100644 index 0000000..8410a5f --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvgui.ZBright @@ -0,0 +1,1914 @@ + + + + -6.1 + +
### uVision Project, (C) Keil Software
+ + + + + + + + + + 38003 + Registers + 188 122 + + + 346 + Code Coverage + 1410 160 + + + 204 + Performance Analyzer + 1570 + + + + + + 35141 + Event Statistics + + 200 50 700 + + + 1506 + Symbols + + 106 106 106 + + + 1936 + Watch 1 + + 200 133 133 + + + 1937 + Watch 2 + + 200 133 133 + + + 1935 + Call Stack + Locals + + 200 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + 466 + Source Browser + 500 + 300 + + + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 25 + 8 + 1409 + 1366 + + + + 0 + + 742 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000500000004000000010000005A443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C454550524F4DB4E6B4A2C4A3BFE95C557365725C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF5B443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C454550524F4DB4E6B4A2C4A3BFE95C4472697665725C6969632E6300000000056969632E6300000000FFDC7800FFFFFFFF5B443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C454550524F4DB4E6B4A2C4A3BFE95C4472697665725C5365672E6300000000055365672E6300000000BECEA100FFFFFFFF5B443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C454550524F4DB4E6B4A2C4A3BFE95C4472697665725C4C65642E6300000000054C65642E6300000000F0A0A100FFFFFFFF5B443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C454550524F4DB4E6B4A2C4A3BFE95C4472697665725C4B65792E6300000000054B65792E6300000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000054010000870000007905000073040000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 440100004F0000007007000013010000 + + + 16 + 8A000000A10000004204000065010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 8A000000A100000006020000B5030000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000000103000070070000C5030000 + + + 16 + 8A000000A10000004204000065010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A10000004204000065010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A10000004204000065010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A10000004204000065010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 33060000660000006D07000047010000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 8A000000A10000004204000065010000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A10000004204000065010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A10000004204000065010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A10000004204000065010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A10000004204000065010000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 8A000000A100000006020000B5030000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 8A000000A100000006020000B5030000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000530400006905000003050000 + + + 16 + 8A000000A10000004204000065010000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000ED02000070070000C5030000 + + + 16 + 8A000000A10000004204000065010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006D070000EA040000 + + + 16 + 8A000000A10000004204000065010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 44010000630000007007000013010000 + + + 16 + 8A000000A10000004204000065010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 8A000000A10000004204000065010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 300600006300000070070000FD020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000000103000070070000B1030000 + + + 16 + 8A000000A10000004204000065010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 8A000000A10000004204000065010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 8A000000A10000004204000065010000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 44010000630000007007000013010000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 8A000000A10000004204000065010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AC030000 + + + 16 + 8A000000A100000006020000B5030000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000530400007007000003050000 + + + 16 + 8A000000A10000004204000065010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006D070000EA040000 + + + 16 + 8A000000A100000006020000B5030000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006D070000EA040000 + + + 16 + 8A000000A100000006020000B5030000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006D070000EA040000 + + + 16 + 8A000000A100000006020000B5030000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 8A000000A10000004204000065010000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000030500006905000016050000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 8A000000A1000000CA010000B2010000 + + + + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000130100007007000017010000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000008A000000A10000004204000065010000440100004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000008A000000A1000000CA010000B2010000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F000000440100003B040000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000008A000000A1000000CA010000B2010000000000004F000000400100003B0400000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E902000070070000ED02000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000008A000000A1000000CA010000B201000000000000ED02000070070000C503000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000ED020000BC030000C503000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000003B040000690500003F040000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000008A000000A10000004204000065010000000000003F04000069050000030500000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2537 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 972 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 2560 + 1440 + + + + + + 1 + 0 + + 100 + 4 + + .\main.c + 22 + 13 + 23 + 1 + + 0 + + + ..\Driver\iic.c + 22 + 1 + 187 + 1 + + 0 + + + ..\Driver\Seg.c + 13 + 1 + 12 + 1 + + 0 + + + ..\Driver\Led.c + 0 + 1 + 1 + 1 + + 0 + + + ..\Driver\Key.c + 24 + 1 + 2 + 1 + + 0 + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvgui.haze b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvgui.haze new file mode 100644 index 0000000..51c9fba --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvgui.haze @@ -0,0 +1,2619 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 578 544 + + + 204 + Performance Analyzer + 1122 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 251 + 391 + 1543 + 739 + + + + 0 + + 487 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000020000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF63433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C454550524F4DB4E6B4A2C4A3BFE95C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF64433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5C454550524F4DB4E6B4A2C4A3BFE95C4472697665725C4B45592E4300000000054B45592E4300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E000000000600002D020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100007E00000070040000EB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000001602000000060000E5020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000EB000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000CF010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000FE010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100002D020000000000004F00000090010000FE0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000BF01000070040000400200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FE010000000600000202000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000310200000006000014030000000000000202000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2002 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020000001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000000060000B7000000 + + + 16 + 940100007E00000000060000E6000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 5600000085000000E601000015020000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 56000000850000003901000028020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 56000000850000008E020000ED000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 56000000850000008E020000ED000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 56000000850000008E020000ED000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 56000000850000008E020000ED000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 56000000850000008E020000ED000000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 5600000085000000E601000015020000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 5600000085000000E601000015020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 5600000085000000E601000015020000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 56000000850000008E020000ED000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 56000000850000008E020000ED000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 56000000850000008E020000ED000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 56000000850000008E020000ED000000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 56000000850000003901000028020000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 56000000850000003901000028020000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 56000000850000008E020000ED000000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000006902000000030000E5020000 + + + 16 + 56000000850000008E020000ED000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 56000000850000008E020000ED000000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 940100006300000000060000B7000000 + + + 16 + 56000000850000008E020000ED000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 56000000850000008E020000ED000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 56000000850000008E020000ED000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 56000000850000008E020000ED000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 56000000850000008E020000ED000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 56000000850000008E020000ED000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 5600000085000000E601000015020000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 56000000850000003901000028020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 56000000850000008E020000ED000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 56000000850000003901000028020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 5600000085000000E601000015020000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 5600000085000000E601000015020000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2618 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF94010000B700000000060000BB000000010000000100001004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000940100007E00000000060000E6000000940100004F00000000060000B70000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008C010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000BB010000E00200004F000000700400008C0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000065020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E0000009001000094020000000000004F00000090010000650200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000065020000000600006902000001000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000100000004030000980200000006000014030000040300006902000000060000E502000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF000000000000000001000000000000000100000001000000FFFFFFFF000300006902000004030000E502000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000008C0100007004000090010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000000000000000000BF0100007004000027020000000000009001000070040000F80100000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2002 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 2 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 40 + 3 + 16 + 1 + + 0 + + + .\main.c + 0 + 13 + 28 + 1 + + 0 + + + ..\Driver\Key.c + 0 + 1 + 9 + 1 + + 0 + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvopt b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvopt new file mode 100644 index 0000000..92ecf4c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvopt @@ -0,0 +1,270 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 12 + + + + + + + + + + + BIN\STCMON51.DLL + + + + 0 + STCMON51 + -S3 -B115200 -O0 -U0 + + + 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 + VDM51 + + + + + + 0 + + + 0 + 0 + 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 + + + + + + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + +
diff --git a/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvproj b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvproj new file mode 100644 index 0000000..f9fa794 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/EEPROM存储模块/User/zuolan.uvproj @@ -0,0 +1,420 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + 8 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 12 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + iic.c + 1 + ..\Driver\iic.c + + + + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/.vscode/settings.json b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Init.c b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Init.h b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Key.c b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Key.h b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Led.c b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Led.c new file mode 100644 index 0000000..1c8922e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Led.c @@ -0,0 +1,75 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief +/// @param enable 0 1 +void Beep(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x40; + else + temp &= ~(0x40); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ĸ߻ǵ͵ƽ +/// @param enable 0 1 +void MOTOR(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x20; + else + temp &= ~(0x20); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Led.h b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Led.h new file mode 100644 index 0000000..845082c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Led.h @@ -0,0 +1,4 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Beep(bit enable); +void MOTOR(bit enable); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Seg.c b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Seg.c new file mode 100644 index 0000000..f4adea4 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 A +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0x88}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Seg.h b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/iic.c b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/iic.c new file mode 100644 index 0000000..e762928 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/iic.c @@ -0,0 +1,206 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + I2CStart(); + I2CSendByte(0x91); + I2CWaitAck(); + temp = I2CReceiveByte(); + I2CSendAck(1); + I2CStop(); + return temp; +} +// 写入的值是数字值0-255,而不是模拟值 +void Da_Write(unsigned char dat) +{ + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} + +/// @brief EEPROM 写函数 +/// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 写入的数组大小 +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); // 写入的数据的地址 + I2CWaitAck(); + while (num--) + { + I2CSendByte(*EEPROM_String++); + I2CWaitAck(); + I2C_Delay(200); + } + I2CStop(); +} +/// @brief EEPROM 读函数 +/// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 读取的数组大小 +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); + I2CWaitAck(); + + // 选择芯片为EEPROM,模式为读 + I2CStart(); + I2CSendByte(0xA1); + I2CWaitAck(); + while (num--) + { + *EEPROM_String++ = I2CReceiveByte(); + if (num) + I2CSendAck(0); + else + I2CSendAck(1); // 停止读取 + } + I2CStop(); +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/iic.h b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/iic.h new file mode 100644 index 0000000..a925af9 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/Driver/iic.h @@ -0,0 +1,5 @@ +#include "STC15F2K60S2.H" +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Init.lst b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Init.lst new file mode 100644 index 0000000..9586bf7 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 03/12/2024 11:39:50 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Key.lst b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Key.lst new file mode 100644 index 0000000..0c10413 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 03/12/2024 11:39:50 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 03/12/2024 11:39:50 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Led.lst b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Led.lst new file mode 100644 index 0000000..cfdd070 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Led.lst @@ -0,0 +1,101 @@ +C51 COMPILER V9.59.0.0 LED 03/12/2024 11:39:50 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief + 23 /// @param enable 0 1 + 24 void Beep(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~(0x40); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 /// @brief ̵ + 41 /// @param enable 0 1 + 42 void Relay(bit enable) + 43 { + 44 1 static unsigned char temp = 0x00; + 45 1 static unsigned char temp_old = 0xff; + 46 1 if (enable) + 47 1 temp |= 0x10; + 48 1 else + 49 1 temp &= ~(0x10); + 50 1 if (temp != temp_old) + 51 1 { + 52 2 P0 = temp; + 53 2 P2 = P2 & 0x1f | 0xa0; + 54 2 P2 &= 0x1f; + C51 COMPILER V9.59.0.0 LED 03/12/2024 11:39:50 PAGE 2 + + 55 2 temp_old = temp; + 56 2 } + 57 1 } + 58 /// @brief ĸ߻ǵ͵ƽ + 59 /// @param enable 0 1 + 60 void MOTOR(bit enable) + 61 { + 62 1 static unsigned char temp = 0x00; + 63 1 static unsigned char temp_old = 0xff; + 64 1 if (enable) + 65 1 temp |= 0x20; + 66 1 else + 67 1 temp &= ~(0x20); + 68 1 if (temp != temp_old) + 69 1 { + 70 2 P0 = temp; + 71 2 P2 = P2 & 0x1f | 0xa0; + 72 2 P2 &= 0x1f; + 73 2 temp_old = temp; + 74 2 } + 75 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 163 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 8 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 3 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Seg.lst b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Seg.lst new file mode 100644 index 0000000..6a48e3e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 03/12/2024 11:39:50 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 A + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0x88}; + 4 // λѡ + 5 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 20 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Uart.lst b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Ultrasonic.lst b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/ds1302.lst b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/iic.lst b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/iic.lst new file mode 100644 index 0000000..5a2936c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 03/12/2024 11:39:50 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 03/12/2024 11:39:50 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 03/12/2024 11:39:50 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 03/12/2024 11:39:50 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/main.lst b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/main.lst new file mode 100644 index 0000000..266151c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/main.lst @@ -0,0 +1,119 @@ +C51 COMPILER V9.59.0.0 MAIN 03/12/2024 11:39:50 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ̷ */ + 12 uchar Key_Slow_Down; + 13 + 14 /* */ + 15 uchar external_input; // ⲿ + 16 uchar light_input; // + 17 uchar differential_input; // ֵ· + 18 uchar Rb2_input; // Rb2 + 19 /* ̴ */ + 20 void Key_Proc() + 21 { + 22 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 23 1 if (Key_Slow_Down) + 24 1 return; + 25 1 Key_Slow_Down = 1; + 26 1 + 27 1 Key_Val = Key_Read(); + 28 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 29 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 30 1 Key_Old = Key_Val; + 31 1 } + 32 /* ܴ */ + 33 void Seg_Proc() + 34 { + 35 1 if (Seg_Slow_Down) + 36 1 return; + 37 1 Seg_Slow_Down = 1; + 38 1 /* ΪʾȫԾʾõ*/ + 39 1 // external_input = Ad_Read(0x40); + 40 1 light_input = Ad_Read(0x41); + 41 1 // differential_input = Ad_Read(0x42); + 42 1 Rb2_input = Ad_Read(0x43); + 43 1 Seg_Buf[0] = light_input / 100 % 10; + 44 1 Seg_Buf[1] = light_input / 10 % 10; + 45 1 Seg_Buf[2] = light_input % 10; + 46 1 Seg_Buf[5] = Rb2_input / 100 % 10; + 47 1 Seg_Buf[6] = Rb2_input / 10 % 10; + 48 1 Seg_Buf[7] = Rb2_input % 10; + 49 1 } + 50 + 51 /* LED */ + 52 void Led_Proc() + 53 { + 54 1 Da_Write(Rb2_input); // DAѹRb2һ + C51 COMPILER V9.59.0.0 MAIN 03/12/2024 11:39:50 PAGE 2 + + 55 1 } + 56 + 57 /* ʱ0жϳʼ */ + 58 void Timer0_Init(void) // 1@12.000MHz + 59 { + 60 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 61 1 TMOD &= 0xF0; // öʱģʽ + 62 1 TL0 = 0x18; // öʱʼֵ + 63 1 TH0 = 0xFC; // öʱʼֵ + 64 1 TF0 = 0; // TF0־ + 65 1 TR0 = 1; // ʱ0ʼʱ + 66 1 ET0 = 1; + 67 1 EA = 1; + 68 1 } + 69 + 70 /* ʱ0жϺ */ + 71 void Timer0_ISR(void) interrupt 1 + 72 { + 73 1 if (++Key_Slow_Down == 10) + 74 1 Key_Slow_Down = 0; + 75 1 if (++Seg_Slow_Down == 500) + 76 1 Seg_Slow_Down = 0; + 77 1 if (++Seg_Pos == 8) + 78 1 Seg_Pos = 0; + 79 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 80 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 81 1 } + 82 + 83 void main() + 84 { + 85 1 System_Init(); + 86 1 Timer0_Init(); + 87 1 while (1) + 88 1 { + 89 2 Key_Proc(); + 90 2 Seg_Proc(); + 91 2 Led_Proc(); + 92 2 } + 93 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 288 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 35 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/onewire.lst b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/onewire.lst new file mode 100644 index 0000000..c7f63e7 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/zuolan.m51 b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/zuolan.m51 new file mode 100644 index 0000000..d860e81 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Listings/zuolan.m51 @@ -0,0 +1,823 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\iic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\iic.obj (IIC) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0014H UNIT ?DT?SEG + 001CH 0004H *** GAP *** + BIT 0020H.0 0000H.1 UNIT ?BI?BEEP?LED + BIT 0020H.1 0000H.1 UNIT ?BI?RELAY?LED + BIT 0020H.2 0000H.1 UNIT ?BI?MOTOR?LED + 0020H.3 0000H.5 *** GAP *** + DATA 0021H 0023H UNIT ?DT?MAIN + DATA 0044H 0008H UNIT ?DT?LED + DATA 004CH 0005H UNIT ?DT?_EEPROM_WRITE?IIC + DATA 0051H 0005H UNIT ?DT?_EEPROM_READ?IIC + IDATA 0056H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0005H UNIT ?PR?LED_PROC?MAIN + 0008H 0003H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 008CH UNIT ?C_C51STARTUP + CODE 009AH 007AH UNIT ?PR?TIMER0_ISR?MAIN + CODE 0114H 007AH UNIT ?PR?KEY_READ?KEY + CODE 018EH 005CH UNIT ?PR?SEG_PROC?MAIN + CODE 01EAH 004FH UNIT ?C_INITSEG + CODE 0239H 0042H UNIT ?PR?_EEPROM_READ?IIC + CODE 027BH 003AH UNIT ?PR?_LED_DISP?LED + CODE 02B5H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 02EBH 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 0320H 0032H UNIT ?PR?_EEPROM_WRITE?IIC + CODE 0352H 002BH UNIT ?C?LIB_CODE + CODE 037DH 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 2 + + + CODE 03A3H 0025H UNIT ?PR?_AD_READ?IIC + CODE 03C8H 0024H UNIT ?PR?I2CWAITACK?IIC + CODE 03ECH 0023H UNIT ?PR?BEEP?LED + CODE 040FH 0023H UNIT ?PR?RELAY?LED + CODE 0432H 0023H UNIT ?PR?MOTOR?LED + CODE 0455H 001FH UNIT ?PR?KEY_PROC?MAIN + CODE 0474H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0491H 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 04ABH 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 04C3H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 04D8H 0015H UNIT ?PR?_DA_WRITE?IIC + CODE 04EDH 0011H UNIT ?PR?MAIN?MAIN + CODE 04FEH 000FH UNIT ?PR?I2CSTART?IIC + CODE 050DH 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT + +--> CALLED SEGMENT +--------------------- +?PR?TIMER0_ISR?MAIN + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?KEY_PROC?MAIN + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN + +--> ?PR?_AD_READ?IIC + +?PR?_AD_READ?IIC + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC + +--> ?PR?_I2C_DELAY?IIC + + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 3 + + +?PR?I2CWAITACK?IIC + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDACK?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?LED_PROC?MAIN + +--> ?PR?_DA_WRITE?IIC + +?PR?_DA_WRITE?IIC + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?I2CSTOP?IIC + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:009AH PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:0025H PUBLIC differential_input + C:0003H PUBLIC Led_Proc + D:0026H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:018EH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:002EH PUBLIC Seg_Buf + C:0455H PUBLIC Key_Proc + D:0036H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:04EDH PUBLIC main + C:04C3H PUBLIC Timer0_Init + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 4 + + + D:0037H PUBLIC Key_Slow_Down + D:0038H PUBLIC light_input + D:0039H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + D:003AH PUBLIC ucLed + D:0042H PUBLIC Rb2_input + D:00D0H PUBLIC PSW + D:0043H PUBLIC external_input + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:0455H LINE# 20 + C:0455H LINE# 21 + C:0455H LINE# 23 + C:0459H LINE# 25 + C:045CH LINE# 27 + C:0461H LINE# 28 + C:046AH LINE# 29 + C:0470H LINE# 30 + C:0473H LINE# 31 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:018EH LINE# 33 + C:018EH LINE# 34 + C:018EH LINE# 35 + C:0192H LINE# 37 + C:0195H LINE# 40 + C:019CH LINE# 42 + C:01A3H LINE# 43 + C:01B0H LINE# 44 + C:01BDH LINE# 45 + C:01C6H LINE# 46 + C:01D3H LINE# 47 + C:01E0H LINE# 48 + C:01E9H LINE# 49 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0003H LINE# 52 + C:0003H LINE# 53 + C:0003H LINE# 54 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:04C3H LINE# 58 + C:04C3H LINE# 59 + C:04C3H LINE# 60 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 5 + + + C:04C6H LINE# 61 + C:04C9H LINE# 62 + C:04CCH LINE# 63 + C:04CFH LINE# 64 + C:04D1H LINE# 65 + C:04D3H LINE# 66 + C:04D5H LINE# 67 + C:04D7H LINE# 68 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:009AH LINE# 71 + C:00B7H LINE# 73 + C:00BFH LINE# 74 + C:00C1H LINE# 75 + C:00CDH LINE# 76 + C:00D0H LINE# 77 + C:00D8H LINE# 78 + C:00DAH LINE# 79 + C:00EDH LINE# 80 + C:00F9H LINE# 81 + ------- ENDPROC TIMER0_ISR + ------- PROC MAIN + C:04EDH LINE# 83 + C:04EDH LINE# 84 + C:04EDH LINE# 85 + C:04F0H LINE# 86 + C:04F3H LINE# 87 + C:04F3H LINE# 88 + C:04F3H LINE# 89 + C:04F6H LINE# 90 + C:04F9H LINE# 91 + C:04FCH LINE# 92 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:040FH PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:027BH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + C:0432H PUBLIC MOTOR + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:03ECH PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 6 + + + D:0005H SYMBOL enable + ------- DO + D:0044H SYMBOL temp + D:0045H SYMBOL temp_old + ------- ENDDO + C:027BH LINE# 5 + C:027BH LINE# 6 + C:027BH LINE# 10 + C:027EH LINE# 11 + C:028DH LINE# 13 + C:029BH LINE# 14 + C:02A1H LINE# 15 + C:02A1H LINE# 16 + C:02A6H LINE# 17 + C:02AEH LINE# 18 + C:02B1H LINE# 19 + C:02B4H LINE# 20 + C:02B4H LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0020H.0 SYMBOL enable + ------- DO + D:0046H SYMBOL temp + D:0047H SYMBOL temp_old + ------- ENDDO + C:03ECH LINE# 24 + C:03ECH LINE# 25 + C:03ECH LINE# 28 + C:03EFH LINE# 29 + C:03F4H LINE# 31 + C:03F7H LINE# 32 + C:03FDH LINE# 33 + C:03FDH LINE# 34 + C:0400H LINE# 35 + C:0408H LINE# 36 + C:040BH LINE# 37 + C:040EH LINE# 38 + C:040EH LINE# 39 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0020H.1 SYMBOL enable + ------- DO + D:0048H SYMBOL temp + D:0049H SYMBOL temp_old + ------- ENDDO + C:040FH LINE# 42 + C:040FH LINE# 43 + C:040FH LINE# 46 + C:0412H LINE# 47 + C:0417H LINE# 49 + C:041AH LINE# 50 + C:0420H LINE# 51 + C:0420H LINE# 52 + C:0423H LINE# 53 + C:042BH LINE# 54 + C:042EH LINE# 55 + C:0431H LINE# 56 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 7 + + + C:0431H LINE# 57 + ------- ENDPROC RELAY + ------- PROC MOTOR + B:0020H.2 SYMBOL enable + ------- DO + D:004AH SYMBOL temp + D:004BH SYMBOL temp_old + ------- ENDDO + C:0432H LINE# 60 + C:0432H LINE# 61 + C:0432H LINE# 64 + C:0435H LINE# 65 + C:043AH LINE# 67 + C:043DH LINE# 68 + C:0443H LINE# 69 + C:0443H LINE# 70 + C:0446H LINE# 71 + C:044EH LINE# 72 + C:0451H LINE# 73 + C:0454H LINE# 74 + C:0454H LINE# 75 + ------- ENDPROC MOTOR + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:02B5H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0014H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:02B5H LINE# 6 + C:02B5H LINE# 7 + C:02B5H LINE# 9 + C:02B8H LINE# 10 + C:02C0H LINE# 13 + C:02C7H LINE# 14 + C:02CFH LINE# 15 + C:02D2H LINE# 18 + C:02D9H LINE# 19 + C:02DCH LINE# 20 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 8 + + + C:02DFH LINE# 21 + C:02E7H LINE# 22 + C:02EAH LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0114H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0114H LINE# 2 + C:0114H LINE# 3 + C:0114H LINE# 4 + C:0116H LINE# 5 + C:0118H LINE# 6 + C:011AH LINE# 7 + C:011CH LINE# 8 + C:011EH LINE# 9 + C:0120H LINE# 10 + C:0123H LINE# 11 + C:0125H LINE# 12 + C:0128H LINE# 13 + C:012AH LINE# 14 + C:012DH LINE# 15 + C:012FH LINE# 16 + C:0132H LINE# 17 + C:0134H LINE# 18 + C:0136H LINE# 19 + C:0138H LINE# 20 + C:013AH LINE# 21 + C:013CH LINE# 22 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 9 + + + C:013FH LINE# 23 + C:0141H LINE# 24 + C:0144H LINE# 25 + C:0146H LINE# 26 + C:0149H LINE# 27 + C:014BH LINE# 28 + C:014EH LINE# 29 + C:0150H LINE# 30 + C:0152H LINE# 31 + C:0154H LINE# 32 + C:0156H LINE# 33 + C:0158H LINE# 34 + C:015BH LINE# 35 + C:015DH LINE# 36 + C:0160H LINE# 37 + C:0162H LINE# 38 + C:0165H LINE# 39 + C:0167H LINE# 40 + C:016AH LINE# 41 + C:016CH LINE# 42 + C:016EH LINE# 43 + C:0170H LINE# 44 + C:0172H LINE# 45 + C:0174H LINE# 46 + C:0177H LINE# 47 + C:0179H LINE# 48 + C:017CH LINE# 49 + C:017EH LINE# 50 + C:0181H LINE# 51 + C:0183H LINE# 52 + C:0186H LINE# 53 + C:0188H LINE# 54 + C:018AH LINE# 55 + C:018DH LINE# 56 + C:018DH LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0474H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0474H LINE# 3 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 10 + + + C:0474H LINE# 4 + C:0474H LINE# 5 + C:0477H LINE# 6 + C:047FH LINE# 7 + C:0482H LINE# 9 + C:0485H LINE# 10 + C:048DH LINE# 11 + C:0490H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:03A3H PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0495H SYMBOL _I2C_Delay + C:04D8H PUBLIC _Da_Write + D:00B8H PUBLIC IP + C:037DH PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + C:0239H PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + C:0320H PUBLIC _EEPROM_Write + B:00A0H.0 PUBLIC scl + C:04FEH PUBLIC I2CStart + C:04ABH PUBLIC _I2CSendAck + C:02EBH PUBLIC _I2CSendByte + C:03DAH PUBLIC I2CWaitAck + C:050DH PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:0491H SYMBOL L?0036 + ------- PROC L?0035 + ------- ENDPROC L?0035 + C:0491H SYMBOL L?0036 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:0495H LINE# 12 + C:0495H LINE# 13 + C:0495H LINE# 15 + C:0495H LINE# 16 + C:0496H LINE# 17 + C:0497H LINE# 18 + C:0498H LINE# 19 + C:0499H LINE# 20 + C:049AH LINE# 21 + C:049BH LINE# 22 + C:049CH LINE# 23 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 11 + + + C:049DH LINE# 24 + C:049EH LINE# 25 + C:049FH LINE# 26 + C:04A0H LINE# 27 + C:04A1H LINE# 28 + C:04A2H LINE# 29 + C:04A3H LINE# 30 + C:04A4H LINE# 31 + C:04AAH LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:04FEH LINE# 35 + C:04FEH LINE# 36 + C:04FEH LINE# 37 + C:0500H LINE# 38 + C:0500H LINE# 39 + C:0503H LINE# 40 + C:0505H LINE# 41 + C:050AH LINE# 42 + C:050CH LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:050DH LINE# 46 + C:050DH LINE# 47 + C:050DH LINE# 48 + C:050FH LINE# 49 + C:050FH LINE# 50 + C:0512H LINE# 51 + C:0514H LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:02EBH LINE# 56 + C:02EDH LINE# 57 + C:02EDH LINE# 60 + C:02F9H LINE# 61 + C:02F9H LINE# 62 + C:02FBH LINE# 63 + C:0300H LINE# 64 + C:0304H LINE# 65 + C:0304H LINE# 66 + C:0306H LINE# 67 + C:0308H LINE# 69 + C:0308H LINE# 70 + C:030AH LINE# 71 + C:030AH LINE# 72 + C:030FH LINE# 73 + C:0311H LINE# 74 + C:0315H LINE# 75 + C:031AH LINE# 76 + C:031DH LINE# 78 + C:031FH LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 12 + + + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:037DH LINE# 82 + C:037DH LINE# 83 + C:037DH LINE# 86 + C:0389H LINE# 87 + C:0389H LINE# 88 + C:0389H LINE# 89 + C:038CH LINE# 90 + C:0390H LINE# 91 + C:0393H LINE# 92 + C:0396H LINE# 93 + C:0398H LINE# 94 + C:039DH LINE# 95 + C:03A0H LINE# 96 + C:03A2H LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + C:03CFH SYMBOL L?0034 + ------- PROC L?0033 + ------- ENDPROC L?0033 + C:03CFH SYMBOL L?0034 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:03DAH LINE# 100 + C:03DAH LINE# 101 + C:03DAH LINE# 104 + C:03DAH LINE# 105 + C:03DDH LINE# 106 + C:03E2H LINE# 107 + C:03E4H LINE# 108 + C:03E9H LINE# 110 + C:03EBH LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:04ABH LINE# 114 + C:04ABH LINE# 115 + C:04ABH LINE# 116 + C:04ADH LINE# 117 + C:04B2H LINE# 118 + C:04B7H LINE# 119 + C:04B7H LINE# 120 + C:04BAH LINE# 121 + C:04BCH LINE# 122 + C:04BEH LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:03A3H LINE# 126 + C:03A5H LINE# 127 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 13 + + + C:03A5H LINE# 130 + C:03A8H LINE# 131 + C:03AAH LINE# 132 + C:03AAH LINE# 133 + C:03AAH LINE# 134 + C:03ADH LINE# 135 + C:03B0H LINE# 136 + C:03B5H LINE# 137 + C:03B8H LINE# 138 + C:03BDH LINE# 139 + C:03C2H LINE# 140 + C:03C5H LINE# 141 + C:03C7H LINE# 142 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:04D8H LINE# 144 + C:04DAH LINE# 145 + C:04DAH LINE# 147 + C:04DDH LINE# 148 + C:04E2H LINE# 149 + C:04E5H LINE# 151 + C:04E7H LINE# 152 + C:04E7H LINE# 153 + C:04E7H LINE# 154 + C:04EAH LINE# 155 + ------- ENDPROC _DA_WRITE + ------- PROC _EEPROM_WRITE + D:004CH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0050H SYMBOL num + C:0320H LINE# 162 + C:0326H LINE# 163 + C:0326H LINE# 165 + C:0326H LINE# 166 + C:0326H LINE# 167 + C:0326H LINE# 169 + C:0326H LINE# 170 + C:0329H LINE# 171 + C:0330H LINE# 172 + C:0330H LINE# 173 + C:0345H LINE# 174 + C:0348H LINE# 175 + C:034DH LINE# 176 + C:034FH LINE# 177 + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:0051H SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0055H SYMBOL num + C:0239H LINE# 183 + C:023FH LINE# 184 + C:023FH LINE# 186 + C:023FH LINE# 187 + C:023FH LINE# 188 + C:023FH LINE# 190 + C:023FH LINE# 191 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:39:50 PAGE 14 + + + C:0242H LINE# 194 + C:0245H LINE# 195 + C:024AH LINE# 196 + C:024DH LINE# 197 + C:0254H LINE# 198 + C:0254H LINE# 199 + C:0269H LINE# 200 + C:026DH LINE# 201 + C:0271H LINE# 203 + C:0276H LINE# 204 + C:0278H LINE# 205 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ?C?CLDPTR + C:0352H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CSTPTR + C:036BH PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC + +Program Size: data=82.3 xdata=0 code=1302 +LINK/LOCATE RUN COMPLETE. 5 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Init.obj b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Init.obj new file mode 100644 index 0000000..3922eac Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Init.obj differ diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Key.obj b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Key.obj new file mode 100644 index 0000000..7130577 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Key.obj differ diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Led.obj b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Led.obj new file mode 100644 index 0000000..407e7a1 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Led.obj differ diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Seg.obj b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Seg.obj new file mode 100644 index 0000000..64f526f Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Seg.obj differ diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Uart.obj b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Uart.obj differ diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Ultrasonic.obj b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/Ultrasonic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/ds1302.obj b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/ds1302.obj differ diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/iic.obj b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/iic.obj new file mode 100644 index 0000000..9e13107 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/iic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/main.obj b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/main.obj new file mode 100644 index 0000000..328dfa0 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/main.obj differ diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/onewire.obj b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/onewire.obj new file mode 100644 index 0000000..772b6d9 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/onewire.obj differ diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan new file mode 100644 index 0000000..5e77466 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan differ diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan.build_log.htm b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..aad185c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan.build_log.htm @@ -0,0 +1,51 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: VDM51.DLL V1.00 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\űȫģԽ\PCF_ADDAģ\User\zuolan.uvproj +Project File Date: 03/12/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling iic.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC +Program Size: data=82.3 xdata=0 code=1302 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 5 Warning(s). +
+ + diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan.hex b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan.hex new file mode 100644 index 0000000..a830f5b --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan.hex @@ -0,0 +1,115 @@ +:1001EA00083A0000000000000000082E050A0A0A6A +:0E01FA000A0A0A0A08260000000000000000A1 +:10045500E537701A7537011201148F21E5246521DE +:0E046500FF5521F522E521F45FF523852124C2 +:010473002266 +:10018E00E53670577536017F411203A38F387F43D2 +:10019E001203A38F42E53875F0648475F00A8485E6 +:1001AE00F02EE53875F00A8475F00A8485F02FE597 +:1001BE003875F00A8485F030E54275F0648475F088 +:1001CE000A8485F033E54275F00A8475F00A848559 +:0C01DE00F034E54275F00A8485F035220B +:05000300AF420204D829 +:1004C300538E7F5389F0758A18758CFCC28DD28C3C +:0504D300D2A9D2AF2206 +:03000B0002009A56 +:10009A00C0E0C0F0C083C082C0D075D000C000C02C +:1000AA0001C002C003C004C005C006C0070537E589 +:1000BA0037640A7002F5370536AF367E00BE010690 +:1000CA00BFF4037536000539E53964087002F5395D +:1000DA00742E2539F8E6FD74262539F8E6FBAF3982 +:1000EA001202B5743A2539F8E6FDAF3912027BD00F +:1000FA0007D006D005D004D003D002D001D000D05A +:0A010A00D0D082D083D0F0D0E032D4 +:1004ED001204741204C312045512018E12000380FB +:0104FD00F509 +:100208000144000145FF0146000147FF0148000184 +:0802180049FF014A00014BFF00 +:10027B00ED600FA8077401088002C333D8FC424419 +:10028B00800EA8077401088002C333D8FCF45244D3 +:10029B00E54465456013E544F4F580E5A0541F443F +:0902AB0080F5A053A01F85444515 +:0102B4002227 +:1003EC0030000543464080035346BFE546654760F1 +:1003FC0011854680E5A0541F44A0F5A053A01F858D +:02040C00464761 +:01040E0022CB +:10040F0030010543481080035348EFE548654960C4 +:10041F0011854880E5A0541F44A0F5A053A01F8567 +:02042F0048493A +:0104310022A8 +:10043200300205434A208003534ADFE54A654B6098 +:1004420011854A80E5A0541F44A0F5A053A01F8542 +:020452004A4B13 +:010454002285 +:100220000C08C0F9A4B0999282F88090FF88081455 +:080230000102040810204080C7 +:1002B5007580FFE5A0541F44E0F5A074142FF8E6FF +:1002C500F580E5A0541F44C0F5A053A01F74082D68 +:1002D500F8E6F580EB600353807FE5A0541F44E00A +:0602E500F5A053A01F224A +:10011400E4FFC2A9C2C4D2C2D2B5D2B420B3027F12 +:100124000420B2027F0520B1027F0620B0027F07BF +:10013400D2C4C2C2D2B5D2B420B3027F0820B20264 +:100144007F0920B1027F0A20B0027F0BD2C4D2C241 +:10015400C2B5D2B420B3027F0C20B2027F0D20B10D +:10016400027F0E20B0027F0FD2C4D2C2D2B5C2B475 +:1001740020B3027F1020B2027F1120B1027F12202F +:09018400B0027F13D2A975B0FF8F +:01018D00224F +:100474007580FFE5A0541F4480F5A053A01FE4F548 +:0D04840080E5A0541F44A0F5A053A01F2246 +:04049100D2A07F0571 +:10049500000000000000000000000000000000AEA9 +:0604A500071FEE70EB22C0 +:0F04FE00D2A1120491C2A17F05120495C2A022BF +:0C050D00C2A1120491D2A17F0502049546 +:0202EB00AD075D +:1002ED00E4FCECC39408748094805024C2A07F0574 +:1002FD00120495ED30E704D2A18002C2A17F051250 +:10030D000495D2A0ED25E0FD7F051204950C80D259 +:02031D00C2A07C +:01031F0022BB +:10037D00E4FCECC39408748094805017120491ED42 +:10038D0025E0FD30A103430501C2A07F05120495B0 +:05039D000C80DFAF053C +:0103A2002238 +:1003C800AB051204FE7FA01202EB1203DAAF031290 +:0203D80002EB36 +:1003DA00120491A2A1E433FDC2A07F05120495AFD5 +:0103EA00050D +:0103EB0022EF +:1004AB00C2A0EF24FF92A17F05120495120491C202 +:0804BB00A0D2A17F0502049507 +:0203A300AB07A6 +:1003A5001204FE7F901203CF1204FE7F911202EB1E +:1003B5001203DA12037DAD077F011204AB12050D9E +:0203C500AF0582 +:0103C7002213 +:1004D800AB071204FE7F901202EB1203DA7F41127F +:0504E80003CF02050D29 +:100320008B4C8A4D894E1203C8AF501550EF601F99 +:10033000AB4C054EE54EAA4D7002054D14F9120363 +:1003400052FF1202EB1203DA7FC812049580DA0220 +:02035000050D99 +:100239008B518A5289531203C81204FE7FA11202FC +:10024900EB1203DAAF551555EF602412037DAB515C +:100259000553E553AA527002055214F9EF12036BC4 +:10026900E5556004E4FF80027F011204AB80D502EA +:02027900050D71 +:0300000002000EED +:0C000E00787FE4F6D8FD7581550200559E +:10035200BB010689828A83E0225002E722BBFE02A9 +:09036200E32289828A83E49322DC +:10036B00BB010689828A83F0225002F722BBFE0171 +:02037B00F3226B +:10001A000204EDE493A3F8E493A34003F68001F20B +:10002A0008DFF48029E493A3F85407240CC8C333E7 +:10003A00C4540F4420C8834004F456800146F6DFB6 +:10004A00E4800B01020408102040809001EAE47E5B +:10005A00019360BCA3FF543F30E509541FFEE493AB +:10006A00A360010ECF54C025E060A840B8E493A372 +:10007A00FAE493A3F8E493A3C8C582C8CAC583CA9D +:10008A00F0A3C8C582C8CAC583CADFE9DEE780BE55 +:0102380000C5 +:00000001FF diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan.lnp b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan.lnp new file mode 100644 index 0000000..f151577 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/Objects/zuolan.lnp @@ -0,0 +1,8 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\iic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/main.c b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/main.c new file mode 100644 index 0000000..695be15 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/main.c @@ -0,0 +1,93 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ̷ */ +uchar Key_Slow_Down; + +/* */ +uchar external_input; // ⲿ +uchar light_input; // +uchar differential_input; // ֵ· +uchar Rb2_input; // Rb2 +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; +} +/* ܴ */ +void Seg_Proc() +{ + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + /* ΪʾȫԾʾõ*/ + // external_input = Ad_Read(0x40); + light_input = Ad_Read(0x41); + // differential_input = Ad_Read(0x42); + Rb2_input = Ad_Read(0x43); + Seg_Buf[0] = light_input / 100 % 10; + Seg_Buf[1] = light_input / 10 % 10; + Seg_Buf[2] = light_input % 10; + Seg_Buf[5] = Rb2_input / 100 % 10; + Seg_Buf[6] = Rb2_input / 10 % 10; + Seg_Buf[7] = Rb2_input % 10; +} + +/* LED */ +void Led_Proc() +{ + Da_Write(Rb2_input); // DAѹRb2һ +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void main() +{ + System_Init(); + Timer0_Init(); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/main.h b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/main.h new file mode 100644 index 0000000..abda591 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/main.h @@ -0,0 +1,11 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "iic.h" +#include "Init.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/zuolan.uvgui.haze b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/zuolan.uvgui.haze new file mode 100644 index 0000000..406408b --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/zuolan.uvgui.haze @@ -0,0 +1,1369 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -32000 + -32000 + + + -1 + -1 + + + 9 + 9 + 1543 + 823 + + + + 0 + + 334 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF45433A5C55736572735C68617A655C4465736B746F705CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4BDB2BDE25C5043465F4144D3EB4441C4A3BFE95C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000094010000660000000006000036020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100006600000070040000D3000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000370200000006000006030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000060300000006000019030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100006600000070040000D3000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200006600000070040000B7010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100001F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000009001000036020000000000004F000000900100001F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000A701000070040000280200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000001F020000000600002302000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000003A020000000600001D030000000000002302000000060000060300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2114 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000004544D4F449600000000000000080004544D4F44034945320443434F4E0C524541445F6F6E6577697265094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E67650000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 1 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 13 + 25 + 42 + 1 + + 0 + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/zuolan.uvopt b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/zuolan.uvopt new file mode 100644 index 0000000..3d1e0f2 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/zuolan.uvopt @@ -0,0 +1,245 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 11 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + +
diff --git a/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/zuolan.uvproj b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/zuolan.uvproj new file mode 100644 index 0000000..4f7388c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/PCF_AD与DA模块/User/zuolan.uvproj @@ -0,0 +1,405 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 11 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + iic.c + 1 + ..\Driver\iic.c + + + + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/串口模块/.vscode/settings.json b/模板/蓝桥杯全模块测试例程/串口模块/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/Driver/Init.c b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/Driver/Init.h b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/Driver/Key.c b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/Driver/Key.h b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/Driver/Led.c b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Led.c new file mode 100644 index 0000000..1c8922e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Led.c @@ -0,0 +1,75 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief +/// @param enable 0 1 +void Beep(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x40; + else + temp &= ~(0x40); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ĸ߻ǵ͵ƽ +/// @param enable 0 1 +void MOTOR(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x20; + else + temp &= ~(0x20); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/Driver/Led.h b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Led.h new file mode 100644 index 0000000..845082c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Led.h @@ -0,0 +1,4 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Beep(bit enable); +void MOTOR(bit enable); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/Driver/Seg.c b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Seg.c new file mode 100644 index 0000000..f4adea4 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 A +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0x88}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/Driver/Seg.h b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/Driver/Uart.c b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Uart.c new file mode 100644 index 0000000..f008d65 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Uart.c @@ -0,0 +1,20 @@ +#include "Uart.h" +void Uart1_Init(void) // 9600bps@12MHz +{ + SCON = 0x50; // 8λ,ɱ䲨 + AUXR |= 0x01; // 1ѡʱ2Ϊʷ + AUXR |= 0x04; // ʱʱ1Tģʽ + T2L = 0xC7; // öʱʼֵ + T2H = 0xFE; // öʱʼֵ + AUXR |= 0x10; // ʱ2ʼʱ + ES = 1; // 򿪴ж + EA = 1; // ж +} +extern char putchar(char ch) +{ + SBUF = ch; // chдSBUF + while (TI == 0) + ; // ȴ + TI = 0; // ɱ־ + return ch; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/Driver/Uart.h b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Uart.h new file mode 100644 index 0000000..0620fac --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/Driver/Uart.h @@ -0,0 +1,3 @@ +#include "STC15F2K60S2.H" +#include "stdio.h" +void Uart1_Init(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Init.lst b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Init.lst new file mode 100644 index 0000000..bf4a651 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 03/12/2024 11:42:30 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Key.lst b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Key.lst new file mode 100644 index 0000000..f7ffd78 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 03/12/2024 11:42:30 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 03/12/2024 11:42:30 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Led.lst b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Led.lst new file mode 100644 index 0000000..6e6cc55 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Led.lst @@ -0,0 +1,101 @@ +C51 COMPILER V9.59.0.0 LED 03/12/2024 11:42:30 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief + 23 /// @param enable 0 1 + 24 void Beep(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~(0x40); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 /// @brief ̵ + 41 /// @param enable 0 1 + 42 void Relay(bit enable) + 43 { + 44 1 static unsigned char temp = 0x00; + 45 1 static unsigned char temp_old = 0xff; + 46 1 if (enable) + 47 1 temp |= 0x10; + 48 1 else + 49 1 temp &= ~(0x10); + 50 1 if (temp != temp_old) + 51 1 { + 52 2 P0 = temp; + 53 2 P2 = P2 & 0x1f | 0xa0; + 54 2 P2 &= 0x1f; + C51 COMPILER V9.59.0.0 LED 03/12/2024 11:42:30 PAGE 2 + + 55 2 temp_old = temp; + 56 2 } + 57 1 } + 58 /// @brief ĸ߻ǵ͵ƽ + 59 /// @param enable 0 1 + 60 void MOTOR(bit enable) + 61 { + 62 1 static unsigned char temp = 0x00; + 63 1 static unsigned char temp_old = 0xff; + 64 1 if (enable) + 65 1 temp |= 0x20; + 66 1 else + 67 1 temp &= ~(0x20); + 68 1 if (temp != temp_old) + 69 1 { + 70 2 P0 = temp; + 71 2 P2 = P2 & 0x1f | 0xa0; + 72 2 P2 &= 0x1f; + 73 2 temp_old = temp; + 74 2 } + 75 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 163 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 8 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 3 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Seg.lst b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Seg.lst new file mode 100644 index 0000000..072f0bd --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 03/12/2024 11:42:30 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 A + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0x88}; + 4 // λѡ + 5 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 20 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Uart.lst b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Uart.lst new file mode 100644 index 0000000..b627a2e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 03/12/2024 11:42:30 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Ultrasonic.lst b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/ds1302.lst b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/iic.lst b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/iic.lst new file mode 100644 index 0000000..27e3624 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/main.lst b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/main.lst new file mode 100644 index 0000000..fa3b227 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/main.lst @@ -0,0 +1,151 @@ +C51 COMPILER V9.59.0.0 MAIN 03/12/2024 11:42:30 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ڷ */ + 12 uchar Uart_Slow_Down; + 13 uchar Uart_Buf[20]; // ڽյ + 14 uchar Uart_Rx_Index; // ڽյݵָ + 15 + 16 /* ̷ */ + 17 uchar Key_Slow_Down; + 18 + 19 /* */ + 20 uchar input_data; + 21 bit down_flag; + 22 /* ̴ */ + 23 void Key_Proc() + 24 { + 25 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 26 1 if (Key_Slow_Down) + 27 1 return; + 28 1 Key_Slow_Down = 1; + 29 1 + 30 1 Key_Val = Key_Read(); + 31 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 32 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 33 1 Key_Old = Key_Val; + 34 1 if (Key_Down != 0) + 35 1 { + 36 2 input_data = Key_Down; + 37 2 down_flag = 1; + 38 2 } + 39 1 } + 40 /* ܴ */ + 41 void Seg_Proc() + 42 { + 43 1 if (Seg_Slow_Down) + 44 1 return; + 45 1 Seg_Slow_Down = 1; + 46 1 } + 47 + 48 /* LED */ + 49 void Led_Proc() + 50 { + 51 1 } + 52 + 53 /* ڴ */ + 54 void Uart_Proc() + C51 COMPILER V9.59.0.0 MAIN 03/12/2024 11:42:30 PAGE 2 + + 55 { + 56 1 if (Uart_Slow_Down) + 57 1 return; + 58 1 Uart_Slow_Down = 1; + 59 1 if (down_flag) + 60 1 { + 61 2 printf(" You pressed it %bu", input_data); + 62 2 down_flag = 0; + 63 2 } + 64 1 if (Uart_Buf[0] == 'O' && Uart_Buf[1] == 'K') + 65 1 { + 66 2 // ִغ + 67 2 printf("hello"); + 68 2 memset(Uart_Buf, 0, 20); + 69 2 Uart_Rx_Index = 0; + 70 2 } + 71 1 } + 72 + 73 /* ʱ0жϳʼ */ + 74 void Timer0_Init(void) // 1@12.000MHz + 75 { + 76 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 77 1 TMOD &= 0xF0; // öʱģʽ + 78 1 TL0 = 0x18; // öʱʼֵ + 79 1 TH0 = 0xFC; // öʱʼֵ + 80 1 TF0 = 0; // TF0־ + 81 1 TR0 = 1; // ʱ0ʼʱ + 82 1 ET0 = 1; + 83 1 EA = 1; + 84 1 } + 85 + 86 /* ʱ0жϺ */ + 87 void Timer0_ISR(void) interrupt 1 + 88 { + 89 1 if (++Key_Slow_Down == 10) + 90 1 Key_Slow_Down = 0; + 91 1 if (++Seg_Slow_Down == 500) + 92 1 Seg_Slow_Down = 0; + 93 1 if (++Uart_Slow_Down == 200) + 94 1 Uart_Slow_Down = 0; + 95 1 if (++Seg_Pos == 8) + 96 1 Seg_Pos = 0; + 97 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 98 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 99 1 } + 100 + 101 /* жϷ */ + 102 void Uart_ISR(void) interrupt 4 + 103 { + 104 1 if (RI == 1) // ڽյ + 105 1 { + 106 2 Uart_Buf[Uart_Rx_Index] = SBUF; + 107 2 Uart_Rx_Index++; + 108 2 RI = 0; + 109 2 } + 110 1 } + 111 void main() + 112 { + 113 1 System_Init(); + 114 1 Timer0_Init(); + 115 1 Uart1_Init(); + 116 1 while (1) + C51 COMPILER V9.59.0.0 MAIN 03/12/2024 11:42:30 PAGE 3 + + 117 1 { + 118 2 Key_Proc(); + 119 2 Seg_Proc(); + 120 2 Uart_Proc(); + 121 2 Led_Proc(); + 122 2 } + 123 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 316 ---- + CONSTANT SIZE = 26 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 54 ---- + IDATA SIZE = ---- ---- + BIT SIZE = 1 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/onewire.lst b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/onewire.lst new file mode 100644 index 0000000..c7f63e7 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/zuolan.m51 b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/zuolan.m51 new file mode 100644 index 0000000..fbf3a0a --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Listings/zuolan.m51 @@ -0,0 +1,658 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:42:30 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\Uart.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\Uart.obj (UART) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (PRINTF) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?PLDIIDATA) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CCASE) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0014H UNIT ?DT?SEG + 001CH 0004H *** GAP *** + BIT 0020H.0 0001H.1 UNIT _BIT_GROUP_ + BIT 0021H.1 0000H.1 UNIT ?BI?MAIN + BIT 0021H.2 0000H.1 UNIT ?BI?BEEP?LED + BIT 0021H.3 0000H.1 UNIT ?BI?RELAY?LED + BIT 0021H.4 0000H.1 UNIT ?BI?MOTOR?LED + 0021H.5 0000H.3 *** GAP *** + DATA 0022H 0036H UNIT ?DT?MAIN + DATA 0058H 0014H UNIT _DATA_GROUP_ + DATA 006CH 0008H UNIT ?DT?LED + IDATA 0074H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0008H UNIT ?PR?SEG_PROC?MAIN + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0023H 0003H ABSOLUTE + CODE 0026H 035CH UNIT ?PR?PRINTF?PRINTF + CODE 0382H 00BAH UNIT ?C?LIB_CODE + CODE 043CH 008CH UNIT ?C_C51STARTUP + CODE 04C8H 0084H UNIT ?PR?TIMER0_ISR?MAIN + CODE 054CH 007AH UNIT ?PR?KEY_READ?KEY + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:42:30 PAGE 2 + + + CODE 05C6H 004FH UNIT ?C_INITSEG + CODE 0615H 003EH UNIT ?PR?UART_PROC?MAIN + CODE 0653H 003AH UNIT ?PR?_LED_DISP?LED + CODE 068DH 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 06C3H 0027H UNIT ?PR?KEY_PROC?MAIN + CODE 06EAH 0023H UNIT ?PR?BEEP?LED + CODE 070DH 0023H UNIT ?PR?RELAY?LED + CODE 0730H 0023H UNIT ?PR?MOTOR?LED + CODE 0753H 001EH UNIT ?PR?UART_ISR?MAIN + CODE 0771H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 078EH 001AH UNIT ?CO?MAIN + CODE 07A8H 0017H UNIT ?PR?MAIN?MAIN + CODE 07BFH 0017H UNIT ?PR?UART1_INIT?UART + CODE 07D6H 0008H UNIT ?PR?_PUTCHAR?UART + CODE 07DEH 0001H UNIT ?PR?LED_PROC?MAIN + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------ +?PR?TIMER0_ISR?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?UART1_INIT?UART + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?UART_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?UART_PROC?MAIN ----- ----- ----- ----- + +--> ?CO?MAIN + +--> ?PR?PRINTF?PRINTF + +?PR?PRINTF?PRINTF 0020H.0 0001H.1 0058H 0014H + +--> ?PR?_PUTCHAR?UART + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (MAIN) + + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:42:30 PAGE 3 + + + 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 + C:04C8H PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:07DEH PUBLIC Led_Proc + D:0026H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:0615H PUBLIC Uart_Proc + C:0003H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + B:0098H.0 PUBLIC RI + D:002EH PUBLIC Uart_Buf + D:0042H PUBLIC Seg_Buf + C:06C3H PUBLIC Key_Proc + D:004AH PUBLIC Uart_Slow_Down + D:004BH PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + D:004CH PUBLIC Uart_Rx_Index + C:07A8H PUBLIC main + C:000EH PUBLIC Timer0_Init + D:004DH PUBLIC Key_Slow_Down + D:004EH PUBLIC input_data + D:0099H PUBLIC SBUF + D:004FH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + B:0021H.1 PUBLIC down_flag + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + C:0753H PUBLIC Uart_ISR + D:0050H PUBLIC ucLed + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0022H SYMBOL Key_Val + D:0023H SYMBOL Key_Down + D:0024H SYMBOL Key_Up + D:0025H SYMBOL Key_Old + ------- ENDDO + C:06C3H LINE# 23 + C:06C3H LINE# 24 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:42:30 PAGE 4 + + + C:06C3H LINE# 26 + C:06C7H LINE# 28 + C:06CAH LINE# 30 + C:06CFH LINE# 31 + C:06D8H LINE# 32 + C:06DEH LINE# 33 + C:06E1H LINE# 34 + C:06E5H LINE# 35 + C:06E5H LINE# 36 + C:06E7H LINE# 37 + C:06E9H LINE# 38 + C:06E9H LINE# 39 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:0003H LINE# 41 + C:0003H LINE# 42 + C:0003H LINE# 43 + C:0007H LINE# 45 + C:000AH LINE# 46 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:07DEH LINE# 49 + C:07DEH LINE# 50 + C:07DEH LINE# 51 + ------- ENDPROC LED_PROC + ------- PROC UART_PROC + C:0615H LINE# 54 + C:0615H LINE# 55 + C:0615H LINE# 56 + C:0619H LINE# 58 + C:061CH LINE# 59 + C:061FH LINE# 60 + C:061FH LINE# 61 + C:062BH LINE# 62 + C:062DH LINE# 63 + C:062DH LINE# 64 + C:0637H LINE# 65 + C:0637H LINE# 67 + C:0640H LINE# 68 + C:064FH LINE# 69 + C:0652H LINE# 70 + C:0652H LINE# 71 + ------- ENDPROC UART_PROC + ------- PROC TIMER0_INIT + C:000EH LINE# 74 + C:000EH LINE# 75 + C:000EH LINE# 76 + C:0011H LINE# 77 + C:0014H LINE# 78 + C:0017H LINE# 79 + C:001AH LINE# 80 + C:001CH LINE# 81 + C:001EH LINE# 82 + C:0020H LINE# 83 + C:0022H LINE# 84 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:42:30 PAGE 5 + + + C:04C8H LINE# 87 + C:04E5H LINE# 89 + C:04EDH LINE# 90 + C:04EFH LINE# 91 + C:04FBH LINE# 92 + C:04FEH LINE# 93 + C:0506H LINE# 94 + C:0508H LINE# 95 + C:0510H LINE# 96 + C:0512H LINE# 97 + C:0525H LINE# 98 + C:0531H LINE# 99 + ------- ENDPROC TIMER0_ISR + ------- PROC UART_ISR + C:0753H LINE# 102 + C:075CH LINE# 104 + C:075FH LINE# 105 + C:075FH LINE# 106 + C:0766H LINE# 107 + C:0768H LINE# 108 + C:076AH LINE# 109 + C:076AH LINE# 110 + ------- ENDPROC UART_ISR + ------- PROC MAIN + C:07A8H LINE# 111 + C:07A8H LINE# 112 + C:07A8H LINE# 113 + C:07ABH LINE# 114 + C:07AEH LINE# 115 + C:07B1H LINE# 116 + C:07B1H LINE# 117 + C:07B1H LINE# 118 + C:07B4H LINE# 119 + C:07B7H LINE# 120 + C:07BAH LINE# 121 + C:07BDH LINE# 122 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:070DH PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0653H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + C:0730H PUBLIC MOTOR + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:42:30 PAGE 6 + + + D:00D0H PUBLIC PSW + C:06EAH PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:006CH SYMBOL temp + D:006DH SYMBOL temp_old + ------- ENDDO + C:0653H LINE# 5 + C:0653H LINE# 6 + C:0653H LINE# 10 + C:0656H LINE# 11 + C:0665H LINE# 13 + C:0673H LINE# 14 + C:0679H LINE# 15 + C:0679H LINE# 16 + C:067EH LINE# 17 + C:0686H LINE# 18 + C:0689H LINE# 19 + C:068CH LINE# 20 + C:068CH LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0021H.2 SYMBOL enable + ------- DO + D:006EH SYMBOL temp + D:006FH SYMBOL temp_old + ------- ENDDO + C:06EAH LINE# 24 + C:06EAH LINE# 25 + C:06EAH LINE# 28 + C:06EDH LINE# 29 + C:06F2H LINE# 31 + C:06F5H LINE# 32 + C:06FBH LINE# 33 + C:06FBH LINE# 34 + C:06FEH LINE# 35 + C:0706H LINE# 36 + C:0709H LINE# 37 + C:070CH LINE# 38 + C:070CH LINE# 39 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0021H.3 SYMBOL enable + ------- DO + D:0070H SYMBOL temp + D:0071H SYMBOL temp_old + ------- ENDDO + C:070DH LINE# 42 + C:070DH LINE# 43 + C:070DH LINE# 46 + C:0710H LINE# 47 + C:0715H LINE# 49 + C:0718H LINE# 50 + C:071EH LINE# 51 + C:071EH LINE# 52 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:42:30 PAGE 7 + + + C:0721H LINE# 53 + C:0729H LINE# 54 + C:072CH LINE# 55 + C:072FH LINE# 56 + C:072FH LINE# 57 + ------- ENDPROC RELAY + ------- PROC MOTOR + B:0021H.4 SYMBOL enable + ------- DO + D:0072H SYMBOL temp + D:0073H SYMBOL temp_old + ------- ENDDO + C:0730H LINE# 60 + C:0730H LINE# 61 + C:0730H LINE# 64 + C:0733H LINE# 65 + C:0738H LINE# 67 + C:073BH LINE# 68 + C:0741H LINE# 69 + C:0741H LINE# 70 + C:0744H LINE# 71 + C:074CH LINE# 72 + C:074FH LINE# 73 + C:0752H LINE# 74 + C:0752H LINE# 75 + ------- ENDPROC MOTOR + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:068DH PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0014H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:068DH LINE# 6 + C:068DH LINE# 7 + C:068DH LINE# 9 + C:0690H LINE# 10 + C:0698H LINE# 13 + C:069FH LINE# 14 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:42:30 PAGE 8 + + + C:06A7H LINE# 15 + C:06AAH LINE# 18 + C:06B1H LINE# 19 + C:06B4H LINE# 20 + C:06B7H LINE# 21 + C:06BFH LINE# 22 + C:06C2H LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:054CH PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:054CH LINE# 2 + C:054CH LINE# 3 + C:054CH LINE# 4 + C:054EH LINE# 5 + C:0550H LINE# 6 + C:0552H LINE# 7 + C:0554H LINE# 8 + C:0556H LINE# 9 + C:0558H LINE# 10 + C:055BH LINE# 11 + C:055DH LINE# 12 + C:0560H LINE# 13 + C:0562H LINE# 14 + C:0565H LINE# 15 + C:0567H LINE# 16 + C:056AH LINE# 17 + C:056CH LINE# 18 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:42:30 PAGE 9 + + + C:056EH LINE# 19 + C:0570H LINE# 20 + C:0572H LINE# 21 + C:0574H LINE# 22 + C:0577H LINE# 23 + C:0579H LINE# 24 + C:057CH LINE# 25 + C:057EH LINE# 26 + C:0581H LINE# 27 + C:0583H LINE# 28 + C:0586H LINE# 29 + C:0588H LINE# 30 + C:058AH LINE# 31 + C:058CH LINE# 32 + C:058EH LINE# 33 + C:0590H LINE# 34 + C:0593H LINE# 35 + C:0595H LINE# 36 + C:0598H LINE# 37 + C:059AH LINE# 38 + C:059DH LINE# 39 + C:059FH LINE# 40 + C:05A2H LINE# 41 + C:05A4H LINE# 42 + C:05A6H LINE# 43 + C:05A8H LINE# 44 + C:05AAH LINE# 45 + C:05ACH LINE# 46 + C:05AFH LINE# 47 + C:05B1H LINE# 48 + C:05B4H LINE# 49 + C:05B6H LINE# 50 + C:05B9H LINE# 51 + C:05BBH LINE# 52 + C:05BEH LINE# 53 + C:05C0H LINE# 54 + C:05C2H LINE# 55 + C:05C5H LINE# 56 + C:05C5H LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0771H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:42:30 PAGE 10 + + + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0771H LINE# 3 + C:0771H LINE# 4 + C:0771H LINE# 5 + C:0774H LINE# 6 + C:077CH LINE# 7 + C:077FH LINE# 9 + C:0782H LINE# 10 + C:078AH LINE# 11 + C:078DH LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE UART + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + B:00A8H.4 PUBLIC ES + D:00B8H PUBLIC IP + B:0098H.1 PUBLIC TI + D:00D8H PUBLIC CCON + D:0099H PUBLIC SBUF + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + C:07BFH PUBLIC Uart1_Init + D:00D6H PUBLIC T2H + D:00D7H PUBLIC T2L + D:00D0H PUBLIC PSW + C:07D6H PUBLIC _putchar + ------- PROC UART1_INIT + C:07BFH LINE# 2 + C:07BFH LINE# 3 + C:07BFH LINE# 4 + C:07C2H LINE# 5 + C:07C5H LINE# 6 + C:07C8H LINE# 7 + C:07CBH LINE# 8 + C:07CEH LINE# 9 + C:07D1H LINE# 10 + C:07D3H LINE# 11 + C:07D5H LINE# 12 + ------- ENDPROC UART1_INIT + ------- PROC _PUTCHAR + D:0007H SYMBOL ch + C:07D6H LINE# 13 + C:07D6H LINE# 14 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:42:30 PAGE 11 + + + C:07D6H LINE# 15 + C:07D8H LINE# 16 + C:07DBH LINE# 18 + C:07DDH LINE# 19 + C:07DDH LINE# 20 + ------- ENDPROC _PUTCHAR + ------- ENDMOD UART + + ------- MODULE PRINTF + D:0058H PUBLIC ?_PRINTF517?BYTE + D:0058H PUBLIC ?_PRINTF?BYTE + D:0058H PUBLIC ?_SPRINTF517?BYTE + D:0058H PUBLIC ?_SPRINTF?BYTE + C:0088H PUBLIC _PRINTF + C:0088H PUBLIC _PRINTF517 + C:0082H PUBLIC _SPRINTF + C:0082H PUBLIC _SPRINTF517 + ------- ENDMOD PRINTF + + ------- MODULE ?C?MEMSET + C:0382H PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET + + ------- MODULE ?C?CLDPTR + C:03AEH PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CLDOPTR + C:03C7H PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:03F4H PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?PLDIIDATA + C:0406H PUBLIC ?C?PLDIIDATA + ------- ENDMOD ?C?PLDIIDATA + + ------- MODULE ?C?CCASE + C:0416H PUBLIC ?C?CCASE + ------- ENDMOD ?C?CCASE + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED + +Program Size: data=112.5 xdata=0 code=2015 +LINK/LOCATE RUN COMPLETE. 3 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Init.obj b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Init.obj new file mode 100644 index 0000000..54aa67e Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Init.obj differ diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Key.obj b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Key.obj new file mode 100644 index 0000000..739513c Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Key.obj differ diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Led.obj b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Led.obj new file mode 100644 index 0000000..c2fabef Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Led.obj differ diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Seg.obj b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Seg.obj new file mode 100644 index 0000000..fbdea71 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Seg.obj differ diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Uart.obj b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Uart.obj new file mode 100644 index 0000000..1122406 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Uart.obj differ diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Ultrasonic.obj b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/Ultrasonic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/ds1302.obj b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/ds1302.obj differ diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/iic.obj b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/iic.obj new file mode 100644 index 0000000..88a47fa Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/iic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/main.obj b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/main.obj new file mode 100644 index 0000000..1b3faee Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/main.obj differ diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/onewire.obj b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/onewire.obj new file mode 100644 index 0000000..772b6d9 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/onewire.obj differ diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan new file mode 100644 index 0000000..1b0d5b0 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan differ diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan.build_log.htm b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..33f639b --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan.build_log.htm @@ -0,0 +1,47 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: VDM51.DLL V1.00 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\űȫģԽ\ģ\User\zuolan.uvproj +Project File Date: 03/12/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling Uart.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED +Program Size: data=112.5 xdata=0 code=2015 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 3 Warning(s). +
+ + diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan.hex b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan.hex new file mode 100644 index 0000000..ef7bc0c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan.hex @@ -0,0 +1,150 @@ +:10078E0020596F75207072657373656420697420CB +:0A079E002562750068656C6C6F0041 +:1005C600085000000000000000000842050A0A0A60 +:0E05D6000A0A0A0A08260000000000000000C1 +:1006C300E54D7022754D0112054C8F22E5256522FB +:1006D300FF5522F523E522F45FF524852225E52342 +:0606E3006004F54ED2098F +:0106E90022EE +:08000300E54B7003754B01226F +:0107DE0022F8 +:10061500E54A7039754A0130090E7BFF7A07798EF4 +:10062500854E5B120088C209E52EB44F20E52FB434 +:100635004B1B7BFF7A0779A21200887E007F147D11 +:0E064500007B007A00792E120382E4F54C222D +:10000E00538E7F5389F0758A18758CFCC28DD28CF5 +:05001E00D2A9D2AF22BF +:03000B000204C824 +:1004C800C0E0C0F0C083C082C0D075D000C000C0FA +:1004D80001C002C003C004C005C006C007054DE541 +:1004E8004D640A7002F54D054BAF4B7E00BE010608 +:1004F800BFF403754B00054AE54A64C87002F54A23 +:10050800054FE54F64087002F54F7442254FF8E631 +:10051800FD7426254FF8E6FBAF4F12068D74502563 +:100528004FF8E6FDAF4F120653D007D006D005D0DE +:1005380004D003D002D001D000D0D0D082D083D054 +:04054800F0D0E032DD +:030023000207537E +:10075300C0E0C0D075D000C00030980B742E254C7B +:0E076300F8A699054CC298D000D0D0D0E03254 +:1007A80012077112000E1207BF1206C312000312BD +:0707B80006151207DE80F2B6 +:1005E400016C00016DFF016E00016FFF01700001DD +:0805F40071FF0172000173FFA9 +:10065300ED600FA8077401088002C333D8FC426C15 +:10066300800EA8077401088002C333D8FCF4526CCF +:10067300E56C656D6013E56CF4F580E5A0541F44EB +:0906830080F5A053A01F856C6DE9 +:01068C00224B +:1006EA00300A05436E408003536EBFE56E656F6046 +:1006FA0011856E80E5A0541F44A0F5A053A01F8564 +:02070A006E6F10 +:01070C0022CA +:10070D00300B0543701080035370EFE57065716019 +:10071D0011857080E5A0541F44A0F5A053A01F853E +:02072D007071E9 +:01072F0022A7 +:10073000300C0543722080035372DFE572657360ED +:1007400011857280E5A0541F44A0F5A053A01F8519 +:020750007273C2 +:010752002284 +:1005FC000C08C0F9A4B0999282F88090FF88081476 +:08060C000102040810204080E7 +:10068D007580FFE5A0541F44E0F5A074142FF8E623 +:10069D00F580E5A0541F44C0F5A053A01F74082D8C +:1006AD00F8E6F580EB600353807FE5A0541F44E02E +:0606BD00F5A053A01F226E +:10054C00E4FFC2A9C2C4D2C2D2B5D2B420B3027FD6 +:10055C000420B2027F0520B1027F0620B0027F0783 +:10056C00D2C4C2C2D2B5D2B420B3027F0820B20228 +:10057C007F0920B1027F0A20B0027F0BD2C4D2C205 +:10058C00C2B5D2B420B3027F0C20B2027F0D20B1D1 +:10059C00027F0E20B0027F0FD2C4D2C2D2B5C2B439 +:1005AC0020B3027F1020B2027F1120B1027F1220F3 +:0905BC00B0027F13D2A975B0FF53 +:0105C5002213 +:100771007580FFE5A0541F4480F5A053A01FE4F548 +:0D07810080E5A0541F44A0F5A053A01F2246 +:1007BF00759850438E01438E0475D7C775D6FE4387 +:0707CF008E10D2ACD2AF2264 +:0807D6008F993099FDC29922B0 +:0300000002043CBB +:0C043C00787FE4F6D8FD7581730204831C +:10002600E567245BF8E60567227858300702785BB7 +:10003600E475F0011204060203AE2000EB7F2ED217 +:10004600008018EF540F2490D43440D4FF30040BB2 +:10005600EF24BFB41A0050032461FFE5686002155F +:1000660068056BE56B7002056A30070D7858E47514 +:10007600F001120406EF0203F40207D67403D20756 +:100086008003E4C207F5678B588A59895AE4F568F4 +:10009600F56AF56BE56860077F2012006180F575EB +:1000A60069FFC201C200C202C203C205C206C2087B +:1000B60012002FFF700D3007057F00120072AF6B24 +:1000C600AE6A22B4255FC2D5C20412002FFF24D027 +:1000D600B40A00501A75F00A786830D50508B6FFDC +:1000E6000106C6A426F620D5047002D20380D924C0 +:1000F600CFB41A00EF5004C2E5D204020272D20154 +:1001060080C6D20080C0D20280BCD2D580BAD205C9 +:1001160080B47F201200612002077401B568004098 +:10012600F1120026FF12006102009AD208D2068060 +:1001360095120026FB120026FA120026F94A4B7089 +:100146000679437A037BFF20022EE568602A7E004B +:100156008E827583001203C760060EEE656970F025 +:10016600C2D5EBC0E0EAC0E0E9C0E0EE1202B9D0C9 +:10017600E0F9D0E0FAD0E0FB1203AEFF60AAEBC0D4 +:10018600E0EAC0E0E9C0E0120061D0E02401F9D065 +:10019600E03400FAD0E0FBE5690460DCD569D9807B +:1001A600877BFF7A0279B5D202809C79108002792A +:1001B60008C206C2088008D2D5790A8004790AC224 +:1001C600D5E569047002F569E4FAFDFEFF12002622 +:1001D600FC7B08200113120026FD7B1030000A125A +:1001E6000026FE120026FF7B20EC3382D592D550E6 +:1001F60013C3E43000069FFFE49EFEE42001039D46 +:10020600FDE49CFCE4CBF8C201EC700CCFCECDCC67 +:10021600E824F8F870F38017C3EF33FFEE33FEEDF2 +:1002260033FDEC33FCEB33FB994002FB0FD8E9EBD3 +:10023600300105F8D0E0C448B201C0E00AEC4D4EEA +:100246004F78207B0070C2EAB5690040BCC0E0125E +:1002560002BBD0F0D0E0200104C4C0E0C4B201C0AB +:10026600F012004AD0F0D5F0EB02009A1204160103 +:10027600375301B15801084C01044201B54F01BD85 +:0F0286004401BD49011D4301C35501A74601A70E +:100295004501A747036350010C2D01102E01332B97 +:1002A500011423013120034C2A00CC480000012B06 +:1002B5003F3F3F00790AA2D5200314300509B91044 +:1002C500020404B9080104A2D52006025001042045 +:1002D50002689202B568005034C0E07F20300319EF +:1002E5007F30A20272067205500F120312C202C2BB +:1002F50006C205C2087F30800F300503E9C0E01251 +:100305000061300503D0E0F9D0E0B568CC300517C1 +:100315007F30B9100C1200617F583004077F788058 +:1003250003B908031200613002057F2D0200617FC9 +:10033500202008F87F2B2006F322920280CF286E1A +:10034500756C6C2900D2011200263001F8C20178C3 +:100355006830D50108F60200CC2D504349581200EB +:10036500262403B405004001E490035E9312005275 +:0D037500743A120052D2037568040201B1FF +:10038200EF4E6012EF60010EEDBB010B89828A8392 +:10039200F0A3DFFCDEFA2289F05007F709DFFCA99F +:0C03A200F022BBFEFCF309DFFCA9F022F6 +:100448000207A8E493A3F8E493A34003F68001F21B +:1004580008DFF48029E493A3F85407240CC8C333B5 +:10046800C4540F4420C8834004F456800146F6DF84 +:10047800E4800B01020408102040809005C6E47E49 +:10048800019360BCA3FF543F30E509541FFEE49379 +:10049800A360010ECF54C025E060A840B8E493A340 +:1004A800FAE493A3F8E493A3C8C582C8CAC583CA6B +:1004B800F0A3C8C582C8CAC583CADFE9DEE780BE23 +:0106140000E5 +:1003AE00BB010689828A83E0225002E722BBFE024D +:0903BE00E32289828A83E4932280 +:1003C700BB010CE58229F582E5833AF583E02250EB +:1003D70006E92582F8E622BBFE06E92582F8E22235 +:0D03E700E58229F582E5833AF583E493224F +:1003F400BB010689828A83F0225002F722BBFE01E8 +:02040400F322E1 +:10040600FAE6FB0808E6F925F0F618E6CA3AF622F7 +:10041600D083D082F8E4937012740193700DA3A375 +:1004260093F8740193F5828883E473740293686089 +:06043600EFA3A3A380DF89 +:00000001FF diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan.lnp b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan.lnp new file mode 100644 index 0000000..14fa3bb --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/Objects/zuolan.lnp @@ -0,0 +1,8 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\Uart.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/main.c b/模板/蓝桥杯全模块测试例程/串口模块/User/main.c new file mode 100644 index 0000000..f9a0b1b --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/main.c @@ -0,0 +1,123 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ڷ */ +uchar Uart_Slow_Down; +uchar Uart_Buf[20]; // ڽյ +uchar Uart_Rx_Index; // ڽյݵָ + +/* ̷ */ +uchar Key_Slow_Down; + +/* */ +uchar input_data; +bit down_flag; +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down != 0) + { + input_data = Key_Down; + down_flag = 1; + } +} +/* ܴ */ +void Seg_Proc() +{ + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; +} + +/* LED */ +void Led_Proc() +{ +} + +/* ڴ */ +void Uart_Proc() +{ + if (Uart_Slow_Down) + return; + Uart_Slow_Down = 1; + if (down_flag) + { + printf(" You pressed it %bu", input_data); + down_flag = 0; + } + if (Uart_Buf[0] == 'O' && Uart_Buf[1] == 'K') + { + // ִغ + printf("hello"); + memset(Uart_Buf, 0, 20); + Uart_Rx_Index = 0; + } +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; + if (++Uart_Slow_Down == 200) + Uart_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +/* жϷ */ +void Uart_ISR(void) interrupt 4 +{ + if (RI == 1) // ڽյ + { + Uart_Buf[Uart_Rx_Index] = SBUF; + Uart_Rx_Index++; + RI = 0; + } +} +void main() +{ + System_Init(); + Timer0_Init(); + Uart1_Init(); + while (1) + { + Key_Proc(); + Seg_Proc(); + Uart_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/main.h b/模板/蓝桥杯全模块测试例程/串口模块/User/main.h new file mode 100644 index 0000000..6b7d54b --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/main.h @@ -0,0 +1,11 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "Init.h" +#include "Uart.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/zuolan.uvgui.haze b/模板/蓝桥杯全模块测试例程/串口模块/User/zuolan.uvgui.haze new file mode 100644 index 0000000..4bc5c5c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/zuolan.uvgui.haze @@ -0,0 +1,1387 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 9 + 9 + 1543 + 823 + + + + 0 + + 506 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000004000000020000000100000041433A5C55736572735C68617A655C4465736B746F705CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4BDB2BDE25CB4AEBFDAC4A3BFE95C4472697665725C556172742E680000000006556172742E6800000000BCA8E100FFFFFFFF25443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000F0A0A100FFFFFFFF3F433A5C55736572735C68617A655C4465736B746F705CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4BDB2BDE25CB4AEBFDAC4A3BFE95C557365725C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF41433A5C55736572735C68617A655C4465736B746F705CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4BDB2BDE25CB4AEBFDAC4A3BFE95C4472697665725C556172742E630000000006556172742E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000094010000660000000006000036020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100006600000070040000D3000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000370200000006000006030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000060300000006000019030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100006600000070040000D3000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200006600000070040000B7010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100001F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000009001000036020000000000004F000000900100001F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000A701000070040000280200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000001F020000000600002302000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000003A020000000600001D030000000000002302000000060000060300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2114 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000004544D4F449600000000000000080004544D4F44034945320443434F4E0C524541445F6F6E6577697265094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E67650000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 2 + + ..\Driver\Uart.h + 20 + 1 + 1 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 33 + 58 + 61 + 1 + + 0 + + + ..\Driver\Uart.c + 0 + 1 + 1 + 1 + + 0 + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/zuolan.uvopt b/模板/蓝桥杯全模块测试例程/串口模块/User/zuolan.uvopt new file mode 100644 index 0000000..a628037 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/zuolan.uvopt @@ -0,0 +1,245 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 11 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 1 + 0 + 0 + 0 + ..\Driver\Uart.c + Uart.c + 0 + 0 + + + +
diff --git a/模板/蓝桥杯全模块测试例程/串口模块/User/zuolan.uvproj b/模板/蓝桥杯全模块测试例程/串口模块/User/zuolan.uvproj new file mode 100644 index 0000000..31157cc --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/串口模块/User/zuolan.uvproj @@ -0,0 +1,405 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 11 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + Uart.c + 1 + ..\Driver\Uart.c + + + + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/.vscode/settings.json b/模板/蓝桥杯全模块测试例程/超声波测距模块/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Init.c b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Init.h b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Key.c b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Key.h b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Led.c b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Led.c new file mode 100644 index 0000000..1c8922e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Led.c @@ -0,0 +1,75 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief +/// @param enable 0 1 +void Beep(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x40; + else + temp &= ~(0x40); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ĸ߻ǵ͵ƽ +/// @param enable 0 1 +void MOTOR(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x20; + else + temp &= ~(0x20); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Led.h b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Led.h new file mode 100644 index 0000000..845082c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Led.h @@ -0,0 +1,4 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Beep(bit enable); +void MOTOR(bit enable); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Seg.c b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Seg.c new file mode 100644 index 0000000..f4adea4 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 A +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0x88}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Seg.h b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Ultrasonic.c b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Ultrasonic.c new file mode 100644 index 0000000..33abcc4 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Ultrasonic.c @@ -0,0 +1,56 @@ +#include "Ultrasonic.h" +#include "intrins.h" + +sbit Tx = P1 ^ 0; +sbit Rx = P1 ^ 1; +void Delay12us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 33; // 38 + while (--i) + ; +} + +void Ut_Wave_Init() +{ + unsigned char i; + // 840kHzķ + // f=40kHz->T=1/f=0.000025s=25us + // 12.5us 1 12.5us 0 + for (i = 0; i < 8; i++) + { + Tx = 1; + Delay12us(); + Tx = 0; + Delay12us(); + } +} + +unsigned char Ut_Wave_Data() +{ + unsigned int time; + CH = CL = 0; // PCAĴֵ + CCON = 0; // ʼPCAƼĴ/PCAʱֹͣ/CF/ + + EA = 0; // رж + Ut_Wave_Init(); // ͳź + EA = 1; // ж + CR = 1; // PCAʼ + while (Rx && !CF) // TF1 + ; // ȴ + CR = 0; // PCAֹͣ + if (CF == 0) + { + time = CH << 8 | CL; // λΪ + // L=V*T/2 + return (time * 0.017); // صĵλcm + } + else + { + CF = 0; + return 0; + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Ultrasonic.h b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Ultrasonic.h new file mode 100644 index 0000000..bea5589 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/Driver/Ultrasonic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.h" +unsigned char Ut_Wave_Data(); \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Init.lst b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Init.lst new file mode 100644 index 0000000..a8d9621 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 03/12/2024 11:41:20 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Key.lst b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Key.lst new file mode 100644 index 0000000..aa4561a --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 03/12/2024 11:41:20 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 03/12/2024 11:41:20 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Led.lst b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Led.lst new file mode 100644 index 0000000..4bfa07e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Led.lst @@ -0,0 +1,101 @@ +C51 COMPILER V9.59.0.0 LED 03/12/2024 11:41:19 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief + 23 /// @param enable 0 1 + 24 void Beep(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~(0x40); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 /// @brief ̵ + 41 /// @param enable 0 1 + 42 void Relay(bit enable) + 43 { + 44 1 static unsigned char temp = 0x00; + 45 1 static unsigned char temp_old = 0xff; + 46 1 if (enable) + 47 1 temp |= 0x10; + 48 1 else + 49 1 temp &= ~(0x10); + 50 1 if (temp != temp_old) + 51 1 { + 52 2 P0 = temp; + 53 2 P2 = P2 & 0x1f | 0xa0; + 54 2 P2 &= 0x1f; + C51 COMPILER V9.59.0.0 LED 03/12/2024 11:41:19 PAGE 2 + + 55 2 temp_old = temp; + 56 2 } + 57 1 } + 58 /// @brief ĸ߻ǵ͵ƽ + 59 /// @param enable 0 1 + 60 void MOTOR(bit enable) + 61 { + 62 1 static unsigned char temp = 0x00; + 63 1 static unsigned char temp_old = 0xff; + 64 1 if (enable) + 65 1 temp |= 0x20; + 66 1 else + 67 1 temp &= ~(0x20); + 68 1 if (temp != temp_old) + 69 1 { + 70 2 P0 = temp; + 71 2 P2 = P2 & 0x1f | 0xa0; + 72 2 P2 &= 0x1f; + 73 2 temp_old = temp; + 74 2 } + 75 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 163 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 8 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 3 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Seg.lst b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Seg.lst new file mode 100644 index 0000000..6f39327 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 03/12/2024 11:41:19 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 A + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0x88}; + 4 // λѡ + 5 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 20 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Uart.lst b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Ultrasonic.lst b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..acf883e --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/Ultrasonic.lst @@ -0,0 +1,82 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 03/12/2024 11:41:20 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; // 38 + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 CH = CL = 0; // PCAĴֵ + 36 1 CCON = 0; // ʼPCAƼĴ/PCAʱֹͣ/CF/ + 37 1 + 38 1 EA = 0; // رж + 39 1 Ut_Wave_Init(); // ͳź + 40 1 EA = 1; // ж + 41 1 CR = 1; // PCAʼ + 42 1 while (Rx && !CF) // TF1 + 43 1 ; // ȴ + 44 1 CR = 0; // PCAֹͣ + 45 1 if (CF == 0) + 46 1 { + 47 2 time = CH << 8 | CL; // λΪ + 48 2 // L=V*T/2 + 49 2 return (time * 0.017); // صĵλcm + 50 2 } + 51 1 else + 52 1 { + 53 2 CF = 0; + 54 2 return 0; + C51 COMPILER V9.59.0.0 ULTRASONIC 03/12/2024 11:41:20 PAGE 2 + + 55 2 } + 56 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 93 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/ds1302.lst b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/iic.lst b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/iic.lst new file mode 100644 index 0000000..27e3624 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/main.lst b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/main.lst new file mode 100644 index 0000000..9dd328c --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/main.lst @@ -0,0 +1,109 @@ +C51 COMPILER V9.59.0.0 MAIN 03/12/2024 11:41:19 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ̷ */ + 12 uchar Key_Slow_Down; + 13 /* */ + 14 uchar dis; + 15 /* ̴ */ + 16 void Key_Proc() + 17 { + 18 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 19 1 if (Key_Slow_Down) + 20 1 return; + 21 1 Key_Slow_Down = 1; + 22 1 + 23 1 Key_Val = Key_Read(); + 24 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 25 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 26 1 Key_Old = Key_Val; + 27 1 } + 28 /* ܴ */ + 29 void Seg_Proc() + 30 { + 31 1 if (Seg_Slow_Down) + 32 1 return; + 33 1 Seg_Slow_Down = 1; + 34 1 dis = Ut_Wave_Data(); + 35 1 Seg_Buf[0] = dis / 1000 % 10; + 36 1 Seg_Buf[1] = dis / 100 % 10; + 37 1 Seg_Buf[2] = dis / 10 % 10; + 38 1 Seg_Buf[3] = dis % 10; + 39 1 } + 40 + 41 /* LED */ + 42 void Led_Proc() + 43 { + 44 1 } + 45 + 46 /* ʱ0жϳʼ */ + 47 void Timer0_Init(void) // 1@12.000MHz + 48 { + 49 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 50 1 TMOD &= 0xF0; // öʱģʽ + 51 1 TL0 = 0x18; // öʱʼֵ + 52 1 TH0 = 0xFC; // öʱʼֵ + 53 1 TF0 = 0; // TF0־ + 54 1 TR0 = 1; // ʱ0ʼʱ + C51 COMPILER V9.59.0.0 MAIN 03/12/2024 11:41:19 PAGE 2 + + 55 1 ET0 = 1; + 56 1 EA = 1; + 57 1 } + 58 + 59 /* ʱ0жϺ */ + 60 void Timer0_ISR(void) interrupt 1 + 61 { + 62 1 if (++Key_Slow_Down == 10) + 63 1 Key_Slow_Down = 0; + 64 1 if (++Seg_Slow_Down == 500) + 65 1 Seg_Slow_Down = 0; + 66 1 + 67 1 if (++Seg_Pos == 8) + 68 1 Seg_Pos = 0; + 69 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 70 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 71 1 } + 72 + 73 void main() + 74 { + 75 1 System_Init(); + 76 1 Timer0_Init(); + 77 1 while (1) + 78 1 { + 79 2 Key_Proc(); + 80 2 Seg_Proc(); + 81 2 Led_Proc(); + 82 2 } + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 258 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 32 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/onewire.lst b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/onewire.lst new file mode 100644 index 0000000..c7f63e7 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/zuolan.m51 b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/zuolan.m51 new file mode 100644 index 0000000..ede6834 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Listings/zuolan.m51 @@ -0,0 +1,627 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:41:20 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\Ultrasonic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\Ultrasonic.obj (ULTRASONIC) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0014H UNIT ?DT?SEG + 001CH 0004H *** GAP *** + BIT 0020H.0 0000H.1 UNIT ?BI?BEEP?LED + BIT 0020H.1 0000H.1 UNIT ?BI?RELAY?LED + BIT 0020H.2 0000H.1 UNIT ?BI?MOTOR?LED + 0020H.3 0000H.5 *** GAP *** + DATA 0021H 0020H UNIT ?DT?MAIN + DATA 0041H 0008H UNIT ?DT?LED + IDATA 0049H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0007H UNIT ?PR?DELAY12US?ULTRASONIC + CODE 000AH 0001H UNIT ?PR?LED_PROC?MAIN + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0228H UNIT ?C?LIB_CODE + CODE 0236H 008CH UNIT ?C_C51STARTUP + CODE 02C2H 007AH UNIT ?PR?TIMER0_ISR?MAIN + CODE 033CH 007AH UNIT ?PR?KEY_READ?KEY + CODE 03B6H 004FH UNIT ?C_INITSEG + CODE 0405H 0042H UNIT ?PR?SEG_PROC?MAIN + CODE 0447H 003CH UNIT ?PR?UT_WAVE_DATA?ULTRASONIC + CODE 0483H 003AH UNIT ?PR?_LED_DISP?LED + CODE 04BDH 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 04F3H 0023H UNIT ?PR?BEEP?LED + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:41:20 PAGE 2 + + + CODE 0516H 0023H UNIT ?PR?RELAY?LED + CODE 0539H 0023H UNIT ?PR?MOTOR?LED + CODE 055CH 001FH UNIT ?PR?KEY_PROC?MAIN + CODE 057BH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0598H 001AH UNIT ?PR?UT_WAVE_INIT?ULTRASONIC + CODE 05B2H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 05C7H 0011H UNIT ?PR?MAIN?MAIN + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT + +--> CALLED SEGMENT +--------------------- +?PR?TIMER0_ISR?MAIN + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?KEY_PROC?MAIN + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN + +--> ?PR?UT_WAVE_DATA?ULTRASONIC + +?PR?UT_WAVE_DATA?ULTRASONIC + +--> ?PR?UT_WAVE_INIT?ULTRASONIC + +?PR?UT_WAVE_INIT?ULTRASONIC + +--> ?PR?DELAY12US?ULTRASONIC + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (MAIN) + + VALUE TYPE NAME + ---------------------------------- + + ------- MODULE MAIN + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:41:20 PAGE 3 + + + D:00B0H PUBLIC P3 + C:02C2H PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:000AH PUBLIC Led_Proc + D:0025H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:0405H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:002DH PUBLIC Seg_Buf + C:055CH PUBLIC Key_Proc + D:0035H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:05C7H PUBLIC main + C:05B2H PUBLIC Timer0_Init + D:0036H PUBLIC Key_Slow_Down + D:0037H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:0038H PUBLIC dis + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + D:0039H PUBLIC ucLed + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:055CH LINE# 16 + C:055CH LINE# 17 + C:055CH LINE# 19 + C:0560H LINE# 21 + C:0563H LINE# 23 + C:0568H LINE# 24 + C:0571H LINE# 25 + C:0577H LINE# 26 + C:057AH LINE# 27 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:0405H LINE# 29 + C:0405H LINE# 30 + C:0405H LINE# 31 + C:0409H LINE# 33 + C:040CH LINE# 34 + C:0411H LINE# 35 + C:0423H LINE# 36 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:41:20 PAGE 4 + + + C:0430H LINE# 37 + C:043DH LINE# 38 + C:0446H LINE# 39 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:000AH LINE# 42 + C:000AH LINE# 43 + C:000AH LINE# 44 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:05B2H LINE# 47 + C:05B2H LINE# 48 + C:05B2H LINE# 49 + C:05B5H LINE# 50 + C:05B8H LINE# 51 + C:05BBH LINE# 52 + C:05BEH LINE# 53 + C:05C0H LINE# 54 + C:05C2H LINE# 55 + C:05C4H LINE# 56 + C:05C6H LINE# 57 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:02C2H LINE# 60 + C:02DFH LINE# 62 + C:02E7H LINE# 63 + C:02E9H LINE# 64 + C:02F5H LINE# 65 + C:02F8H LINE# 67 + C:0300H LINE# 68 + C:0302H LINE# 69 + C:0315H LINE# 70 + C:0321H LINE# 71 + ------- ENDPROC TIMER0_ISR + ------- PROC MAIN + C:05C7H LINE# 73 + C:05C7H LINE# 74 + C:05C7H LINE# 75 + C:05CAH LINE# 76 + C:05CDH LINE# 77 + C:05CDH LINE# 78 + C:05CDH LINE# 79 + C:05D0H LINE# 80 + C:05D3H LINE# 81 + C:05D6H LINE# 82 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:0516H PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:41:20 PAGE 5 + + + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0483H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + C:0539H PUBLIC MOTOR + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:04F3H PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:0041H SYMBOL temp + D:0042H SYMBOL temp_old + ------- ENDDO + C:0483H LINE# 5 + C:0483H LINE# 6 + C:0483H LINE# 10 + C:0486H LINE# 11 + C:0495H LINE# 13 + C:04A3H LINE# 14 + C:04A9H LINE# 15 + C:04A9H LINE# 16 + C:04AEH LINE# 17 + C:04B6H LINE# 18 + C:04B9H LINE# 19 + C:04BCH LINE# 20 + C:04BCH LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0020H.0 SYMBOL enable + ------- DO + D:0043H SYMBOL temp + D:0044H SYMBOL temp_old + ------- ENDDO + C:04F3H LINE# 24 + C:04F3H LINE# 25 + C:04F3H LINE# 28 + C:04F6H LINE# 29 + C:04FBH LINE# 31 + C:04FEH LINE# 32 + C:0504H LINE# 33 + C:0504H LINE# 34 + C:0507H LINE# 35 + C:050FH LINE# 36 + C:0512H LINE# 37 + C:0515H LINE# 38 + C:0515H LINE# 39 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0020H.1 SYMBOL enable + ------- DO + D:0045H SYMBOL temp + D:0046H SYMBOL temp_old + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:41:20 PAGE 6 + + + ------- ENDDO + C:0516H LINE# 42 + C:0516H LINE# 43 + C:0516H LINE# 46 + C:0519H LINE# 47 + C:051EH LINE# 49 + C:0521H LINE# 50 + C:0527H LINE# 51 + C:0527H LINE# 52 + C:052AH LINE# 53 + C:0532H LINE# 54 + C:0535H LINE# 55 + C:0538H LINE# 56 + C:0538H LINE# 57 + ------- ENDPROC RELAY + ------- PROC MOTOR + B:0020H.2 SYMBOL enable + ------- DO + D:0047H SYMBOL temp + D:0048H SYMBOL temp_old + ------- ENDDO + C:0539H LINE# 60 + C:0539H LINE# 61 + C:0539H LINE# 64 + C:053CH LINE# 65 + C:0541H LINE# 67 + C:0544H LINE# 68 + C:054AH LINE# 69 + C:054AH LINE# 70 + C:054DH LINE# 71 + C:0555H LINE# 72 + C:0558H LINE# 73 + C:055BH LINE# 74 + C:055BH LINE# 75 + ------- ENDPROC MOTOR + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:04BDH PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0014H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:41:20 PAGE 7 + + + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:04BDH LINE# 6 + C:04BDH LINE# 7 + C:04BDH LINE# 9 + C:04C0H LINE# 10 + C:04C8H LINE# 13 + C:04CFH LINE# 14 + C:04D7H LINE# 15 + C:04DAH LINE# 18 + C:04E1H LINE# 19 + C:04E4H LINE# 20 + C:04E7H LINE# 21 + C:04EFH LINE# 22 + C:04F2H LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:033CH PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:033CH LINE# 2 + C:033CH LINE# 3 + C:033CH LINE# 4 + C:033EH LINE# 5 + C:0340H LINE# 6 + C:0342H LINE# 7 + C:0344H LINE# 8 + C:0346H LINE# 9 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:41:20 PAGE 8 + + + C:0348H LINE# 10 + C:034BH LINE# 11 + C:034DH LINE# 12 + C:0350H LINE# 13 + C:0352H LINE# 14 + C:0355H LINE# 15 + C:0357H LINE# 16 + C:035AH LINE# 17 + C:035CH LINE# 18 + C:035EH LINE# 19 + C:0360H LINE# 20 + C:0362H LINE# 21 + C:0364H LINE# 22 + C:0367H LINE# 23 + C:0369H LINE# 24 + C:036CH LINE# 25 + C:036EH LINE# 26 + C:0371H LINE# 27 + C:0373H LINE# 28 + C:0376H LINE# 29 + C:0378H LINE# 30 + C:037AH LINE# 31 + C:037CH LINE# 32 + C:037EH LINE# 33 + C:0380H LINE# 34 + C:0383H LINE# 35 + C:0385H LINE# 36 + C:0388H LINE# 37 + C:038AH LINE# 38 + C:038DH LINE# 39 + C:038FH LINE# 40 + C:0392H LINE# 41 + C:0394H LINE# 42 + C:0396H LINE# 43 + C:0398H LINE# 44 + C:039AH LINE# 45 + C:039CH LINE# 46 + C:039FH LINE# 47 + C:03A1H LINE# 48 + C:03A4H LINE# 49 + C:03A6H LINE# 50 + C:03A9H LINE# 51 + C:03ABH LINE# 52 + C:03AEH LINE# 53 + C:03B0H LINE# 54 + C:03B2H LINE# 55 + C:03B5H LINE# 56 + C:03B5H LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:057BH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:41:20 PAGE 9 + + + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:057BH LINE# 3 + C:057BH LINE# 4 + C:057BH LINE# 5 + C:057EH LINE# 6 + C:0586H LINE# 7 + C:0589H LINE# 9 + C:058CH LINE# 10 + C:0594H LINE# 11 + C:0597H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE ULTRASONIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + B:00D8H.7 PUBLIC CF + D:00F9H PUBLIC CH + D:00A8H PUBLIC IE + D:00E9H PUBLIC CL + B:00D8H.6 PUBLIC CR + D:00B8H PUBLIC IP + C:0447H PUBLIC Ut_Wave_Data + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0598H PUBLIC Ut_Wave_Init + C:0003H PUBLIC Delay12us + B:0090H.1 PUBLIC Rx + B:0090H.0 PUBLIC Tx + D:00D0H PUBLIC PSW + ------- PROC DELAY12US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0003H LINE# 6 + C:0003H LINE# 7 + C:0003H LINE# 10 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:41:20 PAGE 10 + + + C:0004H LINE# 11 + C:0005H LINE# 12 + C:0007H LINE# 13 + C:0009H LINE# 15 + ------- ENDPROC DELAY12US + ------- PROC UT_WAVE_INIT + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0598H LINE# 17 + C:0598H LINE# 18 + C:0598H LINE# 23 + C:05A4H LINE# 24 + C:05A4H LINE# 25 + C:05A6H LINE# 26 + C:05A9H LINE# 27 + C:05ABH LINE# 28 + C:05AEH LINE# 29 + C:05B1H LINE# 30 + ------- ENDPROC UT_WAVE_INIT + ------- PROC UT_WAVE_DATA + ------- DO + D:0006H SYMBOL time + ------- ENDDO + C:0447H LINE# 32 + C:0447H LINE# 33 + C:0447H LINE# 35 + C:044CH LINE# 36 + C:044EH LINE# 38 + C:0450H LINE# 39 + C:0453H LINE# 40 + C:0455H LINE# 41 + C:0457H LINE# 42 + C:045DH LINE# 44 + C:045FH LINE# 45 + C:0462H LINE# 46 + C:0462H LINE# 47 + C:046AH LINE# 49 + C:047EH LINE# 50 + C:047EH LINE# 52 + C:047EH LINE# 53 + C:0480H LINE# 54 + C:0482H LINE# 55 + C:0482H LINE# 56 + ------- ENDPROC UT_WAVE_DATA + ------- ENDMOD ULTRASONIC + + ------- MODULE ?C?FPMUL + C:000EH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:011EH PUBLIC ?C?FCASTC + C:0119H PUBLIC ?C?FCASTI + C:0114H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/12/2024 11:41:20 PAGE 11 + + + ------- MODULE ?C?CASTF + C:0152H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?UIDIV + C:01D3H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:0228H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED + +Program Size: data=69.3 xdata=0 code=1496 +LINK/LOCATE RUN COMPLETE. 3 WARNING(S), 0 ERROR(S) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Init.obj b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Init.obj new file mode 100644 index 0000000..c567356 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Init.obj differ diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Key.obj b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Key.obj new file mode 100644 index 0000000..cea40a5 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Key.obj differ diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Led.obj b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Led.obj new file mode 100644 index 0000000..aacc716 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Led.obj differ diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Seg.obj b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Seg.obj new file mode 100644 index 0000000..8840443 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Seg.obj differ diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Uart.obj b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Uart.obj differ diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Ultrasonic.obj b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..fd105f7 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/Ultrasonic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/ds1302.obj b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/ds1302.obj differ diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/iic.obj b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/iic.obj new file mode 100644 index 0000000..88a47fa Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/iic.obj differ diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/main.obj b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/main.obj new file mode 100644 index 0000000..ba8ec35 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/main.obj differ diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/onewire.obj b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/onewire.obj new file mode 100644 index 0000000..772b6d9 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/onewire.obj differ diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan new file mode 100644 index 0000000..3ffe9c3 Binary files /dev/null and b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan differ diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan.build_log.htm b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..92fcae4 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan.build_log.htm @@ -0,0 +1,47 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: VDM51.DLL V1.00 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\űȫģԽ\ģ\User\zuolan.uvproj +Project File Date: 03/12/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling Ultrasonic.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED +Program Size: data=69.3 xdata=0 code=1496 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 3 Warning(s). +
+ + diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan.hex b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan.hex new file mode 100644 index 0000000..f92ebef --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan.hex @@ -0,0 +1,120 @@ +:1003B60008390000000000000000082D050A0A0A9E +:0E03C6000A0A0A0A08250000000000000000D4 +:10055C00E536701A75360112033C8F21E5246521AE +:0E056C00FF5521F522E521F45FF523852124BA +:01057A00225E +:10040500E535703D7535011204478F387E007C0354 +:100415007DE81201D37C007D0A1201D38D2DE538CC +:1004250075F0648475F00A8485F02EE53875F00A58 +:100435008475F00A8485F02FE53875F00A8485F017 +:02044500302263 +:01000A0022D3 +:1005B200538E7F5389F0758A18758CFCC28DD28C4C +:0505C200D2A9D2AF2216 +:03000B000202C22C +:1002C200C0E0C0F0C083C082C0D075D000C000C002 +:1002D20001C002C003C004C005C006C0070536E560 +:1002E20036640A7002F5360535AF357E00BE01066A +:1002F200BFF4037535000537E53764087002F5373A +:10030200742D2537F8E6FD74252537F8E6FBAF375F +:100312001204BD74392537F8E6FDAF37120483D0D5 +:1003220007D006D005D004D003D002D001D000D02F +:0A033200D0D082D083D0F0D0E032AA +:1005C70012057B1205B212055C12040512000A809F +:0105D700F52E +:1003D4000141000142FF0143000144FF01450001C6 +:0803E40046FF0147000148FF3C +:10048300ED600FA8077401088002C333D8FC424112 +:10049300800EA8077401088002C333D8FCF45241CC +:1004A300E54165426013E541F4F580E5A0541F443E +:0904B30080F5A053A01F85414211 +:0104BC00221D +:1004F30030000543434080035343BFE543654460F5 +:1005030011854380E5A0541F44A0F5A053A01F8587 +:0205130043445F +:0105150022C3 +:1005160030010543451080035345EFE545654660C8 +:1005260011854580E5A0541F44A0F5A053A01F8562 +:02053600454638 +:0105380022A0 +:1005390030020543472080035347DFE5476548609C +:1005490011854780E5A0541F44A0F5A053A01F853D +:02055900474811 +:01055B00227D +:1003EC000C08C0F9A4B0999282F88090FF88081488 +:0803FC000102040810204080FA +:1004BD007580FFE5A0541F44E0F5A074142FF8E6F5 +:1004CD00F580E5A0541F44C0F5A053A01F74082D5E +:1004DD00F8E6F580EB600353807FE5A0541F44E000 +:0604ED00F5A053A01F2240 +:10033C00E4FFC2A9C2C4D2C2D2B5D2B420B3027FE8 +:10034C000420B2027F0520B1027F0620B0027F0795 +:10035C00D2C4C2C2D2B5D2B420B3027F0820B2023A +:10036C007F0920B1027F0A20B0027F0BD2C4D2C217 +:10037C00C2B5D2B420B3027F0C20B2027F0D20B1E3 +:10038C00027F0E20B0027F0FD2C4D2C2D2B5C2B44B +:10039C0020B3027F1020B2027F1120B1027F122005 +:0903AC00B0027F13D2A975B0FF65 +:0103B5002225 +:10057B007580FFE5A0541F4480F5A053A01FE4F540 +:0D058B0080E5A0541F44A0F5A053A01F223E +:0600030000007F21DFFE7A +:0100090022D4 +:10059800E4FEEEC3940874809480500DD29012004B +:0905A80003C2901200030E80E969 +:0105B1002227 +:10044700E4F5E9F5F9F5D8C2AF120598D2AFD2DED7 +:1004570030910330DFFAC2DE20DF1CAFF9EFFEADCB +:10046700E9EDFFAC06E41201197B967A43798B78A4 +:0B0477003C12000E020152C2DF7F00A9 +:010482002257 +:10000E00EC4D6011E8497017ED33EC3304600DE4EC +:10001E00FCFFFEFD22E933E8330470F80201BE1244 +:10002E00018958046009E4CC248150062850090245 +:10003E0001C82840030201C5C0E0EB4A7044B980F4 +:10004E0006D0E0FB0201B4EF4E701CBD8008EBFF42 +:10005E00EAFEE9FD80EBE98DF0A4FEE5F00200F783 +:10006E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89CD +:10007E00F0A42EFFE435F0CD89F0A42DFEE435F08A +:10008E008067EF4E7005BD80D780C3EF8BF0A4ACB8 +:10009E00F0EE8BF0A42CFCE435F0F8EF8AF0A42CF3 +:1000AE00E5F038FCE433CB8DF0A42CFCE5F03BF806 +:1000BE00EE8AF0A42CFCE5F038F8E433CF89F0A4F6 +:1000CE002CFCE5F038CF3400CE89F0A42FFFE5F0FC +:1000DE003EFEE433C98DF0A42EFEE5F039CD8AF054 +:1000EE00A42FFFE5F03EFEE43DFD33D0E0FB5007CC +:1000FE000BBB000F0201C8EC2CFCEF33FFEE33FEFE +:06010E00ED33FD0201A02B +:1001140075F020800E75F010800575F0087D007E66 +:10012400007F003392D530D503120228EC334010FF +:10013400EF33FFEE33FEED33FDEC33FCD5F0ED226F +:0E014400E5F0247EA2D513CC92E7CDCEFF22AB +:10015200EDD2E7CD33EC3392D524814006E4FFFEA5 +:10016200FDFC22FCE4CFCECDCC24E0501174FF8004 +:10017200EDC3CC13CCCD13CDCE13CECF13CF0470A1 +:07018200F030D5DE02022877 +:10018900E9D2E7C933E833F892D5EDD2E7CD33ECBC +:0701990033FC5002B2D52235 +:1001A000EC30E7100FBF000C0EBE00080DBD0004C0 +:1001B0000BEB6014A2D5EB13FCED92E7FD2274FF6C +:1001C000FCFDFEFF22E480F8A2D574FF13FC7D80C5 +:0301D000E480EFD9 +:03000000020236C3 +:0C023600787FE4F6D8FD75814802027D57 +:1001D300BC000BBE0029EF8DF084FFADF022E4CC10 +:1001E300F875F008EF2FFFEE33FEEC33FCEE9DECD9 +:1001F300984005FCEE9DFE0FD5F0E9E4CEFD22ED1F +:10020300F8F5F0EE8420D21CFEADF075F008EF2F68 +:10021300FFED33FD4007985006D5F0F222C398FD59 +:050223000FD5F0EA22F6 +:0E022800C3E49FFFE49EFEE49DFDE49CFC22E7 +:100242000205C7E493A3F8E493A34003F68001F206 +:1002520008DFF48029E493A3F85407240CC8C333BD +:10026200C4540F4420C8834004F456800146F6DF8C +:10027200E4800B01020408102040809003B6E47E63 +:10028200019360BCA3FF543F30E509541FFEE49381 +:10029200A360010ECF54C025E060A840B8E493A348 +:1002A200FAE493A3F8E493A3C8C582C8CAC583CA73 +:1002B200F0A3C8C582C8CAC583CADFE9DEE780BE2B +:0104040000F7 +:00000001FF diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan.lnp b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan.lnp new file mode 100644 index 0000000..9d93f1b --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/Objects/zuolan.lnp @@ -0,0 +1,8 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\Ultrasonic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/main.c b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/main.c new file mode 100644 index 0000000..0ad9f99 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/main.c @@ -0,0 +1,83 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ̷ */ +uchar Key_Slow_Down; +/* */ +uchar dis; +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; +} +/* ܴ */ +void Seg_Proc() +{ + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + dis = Ut_Wave_Data(); + Seg_Buf[0] = dis / 1000 % 10; + Seg_Buf[1] = dis / 100 % 10; + Seg_Buf[2] = dis / 10 % 10; + Seg_Buf[3] = dis % 10; +} + +/* LED */ +void Led_Proc() +{ +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; + + if (++Seg_Pos == 8) + Seg_Pos = 0; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void main() +{ + System_Init(); + Timer0_Init(); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/main.h b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/main.h new file mode 100644 index 0000000..d598db5 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/main.h @@ -0,0 +1,11 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "Init.h" +#include "Ultrasonic.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvgui.ZBright b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvgui.ZBright new file mode 100644 index 0000000..4be50ee --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvgui.ZBright @@ -0,0 +1,1923 @@ + + + + -6.1 + +
### uVision Project, (C) Keil Software
+ + + + + + + + + + 38003 + Registers + 188 122 + + + 346 + Code Coverage + 1410 160 + + + 204 + Performance Analyzer + 1570 + + + + + + 35141 + Event Statistics + + 200 50 700 + + + 1506 + Symbols + + 106 106 106 + + + 1936 + Watch 1 + + 200 133 133 + + + 1937 + Watch 2 + + 200 133 133 + + + 1935 + Call Stack + Locals + + 200 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + 466 + Source Browser + 500 + 300 + + + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 34 + 473 + 1874 + 1375 + + + + 0 + + 872 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000600000005000000010000005C443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5CB3ACC9F9B2A8B2E2BEE0C4A3BFE95C4472697665725C496E69742E630000000006496E69742E6300000000C5D4F200FFFFFFFF5B443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5CB3ACC9F9B2A8B2E2BEE0C4A3BFE95C4472697665725C4C65642E6300000000054C65642E6300000000FFDC7800FFFFFFFF5B443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5CB3ACC9F9B2A8B2E2BEE0C4A3BFE95C4472697665725C5365672E6300000000055365672E6300000000BECEA100FFFFFFFF5B443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5CB3ACC9F9B2A8B2E2BEE0C4A3BFE95C4472697665725C4B65792E6300000000054B65792E6300000000F0A0A100FFFFFFFF5A443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5CB3ACC9F9B2A8B2E2BEE0C4A3BFE95C557365725C6D61696E2E6300000000066D61696E2E6300000000BCA8E100FFFFFFFF62443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CC4A3B0E55CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4C0FDB3CC5CB3ACC9F9B2A8B2E2BEE0C4A3BFE95C4472697665725C556C747261736F6E69632E63000000000C556C747261736F6E69632E63000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000025030000900000004A0700007C040000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 440100004F0000007007000013010000 + + + 16 + 530100009F0000007F07000063010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + F200000009010000320200001A020000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + F2000000090100006E0200001D040000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + F2000000090100006E0200001D040000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + F2000000090100006E0200001D040000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000530400006905000003050000 + + + 16 + F200000009010000AA040000CD010000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000ED02000070070000C5030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006C070000EA040000 + + + 16 + F200000009010000AA040000CD010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000AA040000CD010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000320200001A020000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AF030000 + + + 16 + F2000000090100006E0200001D040000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006C070000EA040000 + + + 16 + F200000009010000AA040000CD010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006C070000EA040000 + + + 16 + F2000000090100006E0200001D040000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006C070000EA040000 + + + 16 + F2000000090100006E0200001D040000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006C070000EA040000 + + + 16 + F2000000090100006E0200001D040000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + F200000009010000AA040000CD010000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + F200000009010000320200001A020000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 966 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000030500006905000016050000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 476 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + F200000009010000320200001A020000 + + + + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000130100007007000017010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000530100009F0000007F07000063010000440100004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000003F0600009F0000007F0700004D030000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F000000440100003B040000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000F0000009F0000004F01000018040000000000004F000000400100003B0400000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E902000070070000ED02000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000000F0000003D0300007F0700001504000000000000ED02000070070000C503000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000ED020000BC030000C503000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000003B040000690500003F040000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000000F0000001C0400007E070000E0040000000000003F04000069050000030500000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2537 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 972 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 2560 + 1440 + + + + + + 1 + 0 + + 100 + 5 + + ..\Driver\Init.c + 15 + 1 + 11 + 1 + + 0 + + + ..\Driver\Led.c + 21 + 1 + 65 + 1 + + 0 + + + ..\Driver\Seg.c + 0 + 1 + 1 + 1 + + 0 + + + ..\Driver\Key.c + 17 + 1 + 13 + 1 + + 0 + + + .\main.c + 25 + 37 + 34 + 1 + + 0 + + + ..\Driver\Ultrasonic.c + 0 + 1 + 1 + 1 + + 0 + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvgui.haze b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvgui.haze new file mode 100644 index 0000000..26888a2 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvgui.haze @@ -0,0 +1,1369 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 9 + 9 + 1543 + 823 + + + + 0 + + 334 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000000000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF45433A5C55736572735C68617A655C4465736B746F705CC0B6C7C5B1ADC8ABC4A3BFE9B2E2CAD4BDB2BDE25CB3ACC9F9B2A8B2E2BEE0C4A3BFE95C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000094010000660000000006000036020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100006600000070040000D3000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000370200000006000006030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000060300000006000019030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100006600000070040000D3000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200006600000070040000B7010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100001F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000009001000036020000000000004F000000900100001F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000A701000070040000280200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000001F020000000600002302000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000003A020000000600001D030000000000002302000000060000060300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2114 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000004544D4F449600000000000000080004544D4F44034945320443434F4E0C524541445F6F6E6577697265094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E67650000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 0 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 2 + 14 + 1 + + 0 + + + .\main.c + 12 + 47 + 55 + 1 + + 0 + + + + +
diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvopt b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvopt new file mode 100644 index 0000000..94a9068 --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvopt @@ -0,0 +1,253 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + -1 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + ..\Driver\Ultrasonic.c + Ultrasonic.c + 0 + 0 + + + +
diff --git a/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvproj b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvproj new file mode 100644 index 0000000..1cb171b --- /dev/null +++ b/模板/蓝桥杯全模块测试例程/超声波测距模块/User/zuolan.uvproj @@ -0,0 +1,420 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + 8 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + Ultrasonic.c + 1 + ..\Driver\Ultrasonic.c + + + + + + + +
diff --git a/相关说明/LED说明_左岚.drawio b/相关说明/LED说明_左岚.drawio new file mode 100644 index 0000000..e9917b1 --- /dev/null +++ b/相关说明/LED说明_左岚.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/考纲/15届蓝桥杯电子类考纲.pdf b/考纲/15届蓝桥杯电子类考纲.pdf new file mode 100644 index 0000000..0e1d596 Binary files /dev/null and b/考纲/15届蓝桥杯电子类考纲.pdf differ diff --git a/蓝桥杯单片机模版建立_v1标志位.pdf b/蓝桥杯单片机模版建立_v1标志位.pdf new file mode 100644 index 0000000..dbc35cb Binary files /dev/null and b/蓝桥杯单片机模版建立_v1标志位.pdf differ diff --git a/题目/模拟题/4T14届模拟1_左岚85.zip b/题目/模拟题/4T14届模拟1_左岚85.zip new file mode 100644 index 0000000..f6f1316 Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85.zip differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/.vscode/settings.json b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Init.c b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Init.h b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Key.c b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Key.h b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Led.c b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Led.c new file mode 100644 index 0000000..1c8922e --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Led.c @@ -0,0 +1,75 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief +/// @param enable 0 1 +void Beep(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x40; + else + temp &= ~(0x40); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ĸ߻ǵ͵ƽ +/// @param enable 0 1 +void MOTOR(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x20; + else + temp &= ~(0x20); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Led.h b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Led.h new file mode 100644 index 0000000..abc3b79 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Led.h @@ -0,0 +1,5 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Beep(bit enable); +void MOTOR(bit enable); +void Relay(bit enable); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Seg.c b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Seg.c new file mode 100644 index 0000000..3fb64d6 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 U +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xc1}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Seg.h b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Uart.c b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Uart.c new file mode 100644 index 0000000..f008d65 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Uart.c @@ -0,0 +1,20 @@ +#include "Uart.h" +void Uart1_Init(void) // 9600bps@12MHz +{ + SCON = 0x50; // 8λ,ɱ䲨 + AUXR |= 0x01; // 1ѡʱ2Ϊʷ + AUXR |= 0x04; // ʱʱ1Tģʽ + T2L = 0xC7; // öʱʼֵ + T2H = 0xFE; // öʱʼֵ + AUXR |= 0x10; // ʱ2ʼʱ + ES = 1; // 򿪴ж + EA = 1; // ж +} +extern char putchar(char ch) +{ + SBUF = ch; // chдSBUF + while (TI == 0) + ; // ȴ + TI = 0; // ɱ־ + return ch; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Uart.h b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Uart.h new file mode 100644 index 0000000..0620fac --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/Uart.h @@ -0,0 +1,3 @@ +#include "STC15F2K60S2.H" +#include "stdio.h" +void Uart1_Init(); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/iic.c b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/iic.c new file mode 100644 index 0000000..e762928 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/iic.c @@ -0,0 +1,206 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + I2CStart(); + I2CSendByte(0x91); + I2CWaitAck(); + temp = I2CReceiveByte(); + I2CSendAck(1); + I2CStop(); + return temp; +} +// 写入的值是数字值0-255,而不是模拟值 +void Da_Write(unsigned char dat) +{ + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} + +/// @brief EEPROM 写函数 +/// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 写入的数组大小 +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); // 写入的数据的地址 + I2CWaitAck(); + while (num--) + { + I2CSendByte(*EEPROM_String++); + I2CWaitAck(); + I2C_Delay(200); + } + I2CStop(); +} +/// @brief EEPROM 读函数 +/// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 读取的数组大小 +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); + I2CWaitAck(); + + // 选择芯片为EEPROM,模式为读 + I2CStart(); + I2CSendByte(0xA1); + I2CWaitAck(); + while (num--) + { + *EEPROM_String++ = I2CReceiveByte(); + if (num) + I2CSendAck(0); + else + I2CSendAck(1); // 停止读取 + } + I2CStop(); +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/iic.h b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/iic.h new file mode 100644 index 0000000..a925af9 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/Driver/iic.h @@ -0,0 +1,5 @@ +#include "STC15F2K60S2.H" +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Init.lst b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Init.lst new file mode 100644 index 0000000..9171fcf --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 04/10/2024 13:57:11 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Key.lst b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Key.lst new file mode 100644 index 0000000..be1c28f --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 04/10/2024 13:57:11 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 04/10/2024 13:57:11 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Led.lst b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Led.lst new file mode 100644 index 0000000..e8991bc --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Led.lst @@ -0,0 +1,101 @@ +C51 COMPILER V9.59.0.0 LED 04/10/2024 13:57:11 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief + 23 /// @param enable 0 1 + 24 void Beep(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~(0x40); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 /// @brief ̵ + 41 /// @param enable 0 1 + 42 void Relay(bit enable) + 43 { + 44 1 static unsigned char temp = 0x00; + 45 1 static unsigned char temp_old = 0xff; + 46 1 if (enable) + 47 1 temp |= 0x10; + 48 1 else + 49 1 temp &= ~(0x10); + 50 1 if (temp != temp_old) + 51 1 { + 52 2 P0 = temp; + 53 2 P2 = P2 & 0x1f | 0xa0; + 54 2 P2 &= 0x1f; + C51 COMPILER V9.59.0.0 LED 04/10/2024 13:57:11 PAGE 2 + + 55 2 temp_old = temp; + 56 2 } + 57 1 } + 58 /// @brief ĸ߻ǵ͵ƽ + 59 /// @param enable 0 1 + 60 void MOTOR(bit enable) + 61 { + 62 1 static unsigned char temp = 0x00; + 63 1 static unsigned char temp_old = 0xff; + 64 1 if (enable) + 65 1 temp |= 0x20; + 66 1 else + 67 1 temp &= ~(0x20); + 68 1 if (temp != temp_old) + 69 1 { + 70 2 P0 = temp; + 71 2 P2 = P2 & 0x1f | 0xa0; + 72 2 P2 &= 0x1f; + 73 2 temp_old = temp; + 74 2 } + 75 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 163 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 8 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 3 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Seg.lst b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Seg.lst new file mode 100644 index 0000000..622755a --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 04/10/2024 13:57:11 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 U + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xc1}; + 4 // λѡ + 5 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 20 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Uart.lst b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Uart.lst new file mode 100644 index 0000000..21975f0 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 04/10/2024 13:57:12 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Ultrasonic.lst b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/ds1302.lst b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/iic.lst b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/iic.lst new file mode 100644 index 0000000..176e705 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 04/10/2024 13:57:12 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 04/10/2024 13:57:12 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 04/10/2024 13:57:12 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 04/10/2024 13:57:12 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/main.lst b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/main.lst new file mode 100644 index 0000000..dea6291 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/main.lst @@ -0,0 +1,204 @@ +C51 COMPILER V9.59.0.0 MAIN 04/10/2024 13:57:11 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 7 uchar Seg_Pos; // ָʾ + 8 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 9 + 10 /* ڷ */ + 11 uchar Uart_Buf[10]; // ڽյ + 12 uchar Uart_Rx_Index; // ڽյݵָ + 13 + 14 /* ʱ䷽ */ + 15 uint time_all_1s; + 16 uchar Sys_Tick; + 17 uchar time_100ms; + 18 /* ж */ + 19 bit Uart_Flag; + 20 bit Wring_Flag; + 21 bit Led_Blink_Flag; + 22 /* ʾ */ + 23 uchar Seg_show_mode; // 0 ֱ 1 ʾ + 24 /* */ + 25 uint Noise_Value_10x; + 26 uchar Noise_Para = 65; + 27 /* ̴ */ + 28 void Key_Proc() + 29 { + 30 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 31 1 if (time_all_1s % 10) + 32 1 return; + 33 1 Key_Val = Key_Read(); + 34 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 35 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 36 1 Key_Old = Key_Val; + 37 1 if (Key_Down == 12) + 38 1 Seg_show_mode = (++Seg_show_mode) % 2; + 39 1 if (Seg_show_mode == 1) + 40 1 { + 41 2 if (Key_Down == 16) + 42 2 Noise_Para = (Noise_Para == 90) ? 0 : Noise_Para + 5; + 43 2 else if (Key_Down == 17) + 44 2 Noise_Para = (Noise_Para == 0) ? 90 : Noise_Para - 5; + 45 2 } + 46 1 } + 47 /* ܴ */ + 48 void Seg_Proc() + 49 { + 50 1 if (time_all_1s % 50) + 51 1 return; + 52 1 Noise_Value_10x = Ad_Read(0x03) * 180 / 51; + 53 1 Wring_Flag = Noise_Value_10x > Noise_Para * 10; + 54 1 + C51 COMPILER V9.59.0.0 MAIN 04/10/2024 13:57:11 PAGE 2 + + 55 1 Seg_Buf[0] = 11; // U + 56 1 Seg_Buf[1] = Seg_show_mode + 1; + 57 1 switch (Seg_show_mode) + 58 1 { + 59 2 case 0: + 60 2 /* ֱʾ */ + 61 2 Seg_Point[6] = 1; + 62 2 Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 63 2 Seg_Buf[5] = (Noise_Value_10x / 100 % 10 == 0) ? 10 + 64 2 : Noise_Value_10x / 100 % 10; + 65 2 Seg_Buf[6] = Noise_Value_10x / 10 % 10; + 66 2 Seg_Buf[7] = Noise_Value_10x % 10; + 67 2 break; + 68 2 + 69 2 case 1: + 70 2 /* ֱ */ + 71 2 Seg_Point[6] = 0; + 72 2 Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + 73 2 Seg_Buf[6] = (Noise_Para / 10 % 10 == 0) ? 10 + 74 2 : Noise_Para / 10 % 10; + 75 2 Seg_Buf[7] = Noise_Para % 10; + 76 2 break; + 77 2 } + 78 1 } + 79 + 80 /* LED */ + 81 void Led_Proc() + 82 { + 83 1 ucLed[0] = (Seg_show_mode == 0); + 84 1 ucLed[1] = (Seg_show_mode == 1); + 85 1 ucLed[7] = Led_Blink_Flag; + 86 1 } + 87 + 88 /* ڴ */ + 89 void Uart_Proc() + 90 { + 91 1 if (Uart_Rx_Index == 0) + 92 1 // ûнյκ + 93 1 return; + 94 1 if (Sys_Tick >= 10) + 95 1 { + 96 2 Sys_Tick = Uart_Flag = 0; + 97 2 if (Seg_show_mode == 0) + 98 2 { + 99 3 if (Uart_Buf[0] == 'R' && Uart_Buf[1] == 'e' && Uart_Buf[2] == 't' && + 100 3 Uart_Buf[3] == 'u' && Uart_Buf[4] == 'r' && Uart_Buf[5] == 'n') + 101 3 printf("Noises:%0.1fdB", (float)Noise_Value_10x / 10.0); + 102 3 } + 103 2 memset(Uart_Buf, 0, Uart_Rx_Index); + 104 2 Uart_Rx_Index = 0; + 105 2 } + 106 1 } + 107 + 108 /* ʱ0жϳʼ */ + 109 void Timer0_Init(void) // 1@12.000MHz + 110 { + 111 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 112 1 TMOD &= 0xF0; // öʱģʽ + 113 1 TL0 = 0x18; // öʱʼֵ + 114 1 TH0 = 0xFC; // öʱʼֵ + 115 1 TF0 = 0; // TF0־ + 116 1 TR0 = 1; // ʱ0ʼʱ + C51 COMPILER V9.59.0.0 MAIN 04/10/2024 13:57:11 PAGE 3 + + 117 1 ET0 = 1; + 118 1 EA = 1; + 119 1 } + 120 + 121 /* ʱ0жϺ */ + 122 void Timer0_ISR(void) interrupt 1 + 123 { + 124 1 if (++time_all_1s == 1000) + 125 1 time_all_1s = 0; + 126 1 if (++Seg_Pos == 8) + 127 1 Seg_Pos = 0; + 128 1 if (Uart_Flag) + 129 1 Sys_Tick++; + 130 1 if (Wring_Flag) + 131 1 { + 132 2 if (++time_100ms == 100) + 133 2 { + 134 3 time_100ms = 0; + 135 3 Led_Blink_Flag ^= 1; + 136 3 } + 137 2 } + 138 1 else + 139 1 { + 140 2 time_100ms = 0; + 141 2 Led_Blink_Flag = 0; + 142 2 } + 143 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 144 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 145 1 } + 146 + 147 /* жϷ */ + 148 void Uart_ISR(void) interrupt 4 + 149 { + 150 1 if (RI == 1) // ڽյ + 151 1 { + 152 2 Uart_Flag = 1; + 153 2 Sys_Tick = 0; + 154 2 Uart_Buf[Uart_Rx_Index] = SBUF; + 155 2 Uart_Rx_Index++; + 156 2 RI = 0; + 157 2 } + 158 1 if (Uart_Rx_Index > 10) + 159 1 Uart_Rx_Index = 0; + 160 1 } + 161 void main() + 162 { + 163 1 System_Init(); + 164 1 Timer0_Init(); + 165 1 Uart1_Init(); + 166 1 + 167 1 while (1) + 168 1 { + 169 2 Key_Proc(); + 170 2 Seg_Proc(); + 171 2 Uart_Proc(); + 172 2 Led_Proc(); + 173 2 } + 174 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 699 ---- + C51 COMPILER V9.59.0.0 MAIN 04/10/2024 13:57:11 PAGE 4 + + CONSTANT SIZE = 15 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 48 ---- + IDATA SIZE = ---- ---- + BIT SIZE = 3 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/onewire.lst b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/onewire.lst new file mode 100644 index 0000000..c7f63e7 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/zuolan.m51 b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/zuolan.m51 new file mode 100644 index 0000000..473c801 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Listings/zuolan.m51 @@ -0,0 +1,1051 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\Uart.obj, .\Objects\iic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\Uart.obj (UART) + .\Objects\iic.obj (IIC) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (PRINTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPROUND) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPCONVERT) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FTNPWR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?PLDIIDATA) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CCASE) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0014H UNIT ?DT?SEG + 001CH 0004H *** GAP *** + BIT 0020H.0 0001H.1 UNIT _BIT_GROUP_ + BIT 0021H.1 0000H.3 UNIT ?BI?MAIN + BIT 0021H.4 0000H.1 UNIT ?BI?BEEP?LED + BIT 0021H.5 0000H.1 UNIT ?BI?RELAY?LED + BIT 0021H.6 0000H.1 UNIT ?BI?MOTOR?LED + 0021H.7 0000H.1 *** GAP *** + DATA 0022H 0030H UNIT ?DT?MAIN + DATA 0052H 001CH UNIT _DATA_GROUP_ + DATA 006EH 0008H UNIT ?DT?LED + DATA 0076H 0005H UNIT ?DT?_EEPROM_WRITE?IIC + DATA 007BH 0005H UNIT ?DT?_EEPROM_READ?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 2 + + + IDATA 0080H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0008H UNIT ?PR?_PUTCHAR?UART + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0023H 0003H ABSOLUTE + CODE 0026H 05E5H UNIT ?C?LIB_CODE + CODE 060BH 046FH UNIT ?PR?PRINTF?PRINTF + CODE 0A7AH 00CBH UNIT ?PR?SEG_PROC?MAIN + CODE 0B45H 0096H UNIT ?PR?TIMER0_ISR?MAIN + CODE 0BDBH 008CH UNIT ?C_C51STARTUP + CODE 0C67H 007AH UNIT ?PR?KEY_READ?KEY + CODE 0CE1H 006FH UNIT ?PR?UART_PROC?MAIN + CODE 0D50H 006AH UNIT ?PR?KEY_PROC?MAIN + CODE 0DBAH 0052H UNIT ?C_INITSEG + CODE 0E0CH 0042H UNIT ?PR?_EEPROM_READ?IIC + CODE 0E4EH 003AH UNIT ?PR?_LED_DISP?LED + CODE 0E88H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 0EBEH 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 0EF3H 0032H UNIT ?PR?_EEPROM_WRITE?IIC + CODE 0F25H 0031H UNIT ?PR?UART_ISR?MAIN + CODE 0F56H 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 0F7CH 0025H UNIT ?PR?_AD_READ?IIC + CODE 0FA1H 0024H UNIT ?PR?LED_PROC?MAIN + CODE 0FC5H 0024H UNIT ?PR?I2CWAITACK?IIC + CODE 0FE9H 0023H UNIT ?PR?BEEP?LED + CODE 100CH 0023H UNIT ?PR?RELAY?LED + CODE 102FH 0023H UNIT ?PR?MOTOR?LED + CODE 1052H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 106FH 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 1089H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 10A1H 0017H UNIT ?PR?MAIN?MAIN + CODE 10B8H 0017H UNIT ?PR?UART1_INIT?UART + CODE 10CFH 0015H UNIT ?PR?_DA_WRITE?IIC + CODE 10E4H 000FH UNIT ?CO?MAIN + CODE 10F3H 000FH UNIT ?PR?I2CSTART?IIC + CODE 1102H 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------ +?PR?TIMER0_ISR?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 3 + + + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?UART1_INIT?UART + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?UART_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_AD_READ?IIC + +?PR?_AD_READ?IIC ----- ----- ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CWAITACK?IIC ----- ----- ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDACK?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?UART_PROC?MAIN ----- ----- ----- ----- + +--> ?CO?MAIN + +--> ?PR?PRINTF?PRINTF + +?PR?PRINTF?PRINTF 0020H.0 0001H.1 0052H 001CH + +--> ?PR?_PUTCHAR?UART + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (MAIN) + + VALUE TYPE NAME + ---------------------------------- + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 4 + + + + ------- MODULE MAIN + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0B45H PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:0026H PUBLIC time_100ms + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0FA1H PUBLIC Led_Proc + D:0027H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:0CE1H PUBLIC Uart_Proc + C:0A7AH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + B:0098H.0 PUBLIC RI + D:002FH PUBLIC Noise_Value_10x + D:0031H PUBLIC Uart_Buf + D:003BH PUBLIC Seg_Buf + C:0D50H PUBLIC Key_Proc + D:00D8H PUBLIC CCON + D:0043H PUBLIC Uart_Rx_Index + C:10A1H PUBLIC main + C:000EH PUBLIC Timer0_Init + D:0044H PUBLIC Sys_Tick + D:0099H PUBLIC SBUF + D:0045H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + B:0021H.1 PUBLIC Led_Blink_Flag + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:0046H PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + D:0047H PUBLIC time_all_1s + B:0088H.4 PUBLIC TR0 + B:0021H.2 PUBLIC Wring_Flag + D:0049H PUBLIC Noise_Para + C:0F25H PUBLIC Uart_ISR + D:004AH PUBLIC ucLed + B:0021H.3 PUBLIC Uart_Flag + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0022H SYMBOL Key_Val + D:0023H SYMBOL Key_Down + D:0024H SYMBOL Key_Up + D:0025H SYMBOL Key_Old + ------- ENDDO + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 5 + + + C:0D50H LINE# 28 + C:0D50H LINE# 29 + C:0D50H LINE# 31 + C:0D5FH LINE# 33 + C:0D64H LINE# 34 + C:0D6DH LINE# 35 + C:0D73H LINE# 36 + C:0D76H LINE# 37 + C:0D7FH LINE# 38 + C:0D87H LINE# 39 + C:0D8DH LINE# 40 + C:0D8DH LINE# 41 + C:0D93H LINE# 42 + C:0DA4H LINE# 43 + C:0DAAH LINE# 44 + C:0DB9H LINE# 45 + C:0DB9H LINE# 46 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:0A7AH LINE# 48 + C:0A7AH LINE# 49 + C:0A7AH LINE# 50 + C:0A8CH LINE# 52 + C:0AA4H LINE# 53 + C:0ABBH LINE# 55 + C:0ABEH LINE# 56 + C:0AC3H LINE# 57 + C:0ACBH LINE# 58 + C:0ACBH LINE# 59 + C:0ACBH LINE# 61 + C:0ACEH LINE# 62 + C:0AD7H LINE# 63 + C:0AF5H LINE# 65 + C:0B09H LINE# 66 + C:0B16H LINE# 67 + C:0B17H LINE# 69 + C:0B17H LINE# 71 + C:0B1AH LINE# 72 + C:0B26H LINE# 73 + C:0B3BH LINE# 75 + C:0B44H LINE# 76 + C:0B44H LINE# 77 + C:0B44H LINE# 78 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0FA1H LINE# 81 + C:0FA1H LINE# 82 + C:0FA1H LINE# 83 + C:0FB0H LINE# 84 + C:0FBEH LINE# 85 + C:0FC4H LINE# 86 + ------- ENDPROC LED_PROC + ------- PROC UART_PROC + C:0CE1H LINE# 89 + C:0CE1H LINE# 90 + C:0CE1H LINE# 91 + C:0CE5H LINE# 94 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 6 + + + C:0CF0H LINE# 95 + C:0CF0H LINE# 96 + C:0CF5H LINE# 97 + C:0CF9H LINE# 98 + C:0CF9H LINE# 99 + C:0D1AH LINE# 101 + C:0D3DH LINE# 102 + C:0D3DH LINE# 103 + C:0D4CH LINE# 104 + C:0D4FH LINE# 105 + C:0D4FH LINE# 106 + ------- ENDPROC UART_PROC + ------- PROC TIMER0_INIT + C:000EH LINE# 109 + C:000EH LINE# 110 + C:000EH LINE# 111 + C:0011H LINE# 112 + C:0014H LINE# 113 + C:0017H LINE# 114 + C:001AH LINE# 115 + C:001CH LINE# 116 + C:001EH LINE# 117 + C:0020H LINE# 118 + C:0022H LINE# 119 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:0B45H LINE# 122 + C:0B62H LINE# 124 + C:0B73H LINE# 125 + C:0B79H LINE# 126 + C:0B81H LINE# 127 + C:0B83H LINE# 128 + C:0B86H LINE# 129 + C:0B88H LINE# 130 + C:0B8BH LINE# 131 + C:0B8BH LINE# 132 + C:0B93H LINE# 133 + C:0B93H LINE# 134 + C:0B95H LINE# 135 + C:0B9AH LINE# 136 + C:0B9AH LINE# 137 + C:0B9CH LINE# 139 + C:0B9CH LINE# 140 + C:0B9FH LINE# 141 + C:0BA1H LINE# 142 + C:0BA1H LINE# 143 + C:0BB4H LINE# 144 + C:0BC0H LINE# 145 + ------- ENDPROC TIMER0_ISR + ------- PROC UART_ISR + C:0F25H LINE# 148 + C:0F2EH LINE# 150 + C:0F31H LINE# 151 + C:0F31H LINE# 152 + C:0F33H LINE# 153 + C:0F36H LINE# 154 + C:0F3DH LINE# 155 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 7 + + + C:0F3FH LINE# 156 + C:0F41H LINE# 157 + C:0F41H LINE# 158 + C:0F4CH LINE# 159 + C:0F4FH LINE# 160 + ------- ENDPROC UART_ISR + ------- PROC MAIN + C:10A1H LINE# 161 + C:10A1H LINE# 162 + C:10A1H LINE# 163 + C:10A4H LINE# 164 + C:10A7H LINE# 165 + C:10AAH LINE# 167 + C:10AAH LINE# 168 + C:10AAH LINE# 169 + C:10ADH LINE# 170 + C:10B0H LINE# 171 + C:10B3H LINE# 172 + C:10B6H LINE# 173 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:100CH PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0E4EH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + C:102FH PUBLIC MOTOR + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:0FE9H PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:006EH SYMBOL temp + D:006FH SYMBOL temp_old + ------- ENDDO + C:0E4EH LINE# 5 + C:0E4EH LINE# 6 + C:0E4EH LINE# 10 + C:0E51H LINE# 11 + C:0E60H LINE# 13 + C:0E6EH LINE# 14 + C:0E74H LINE# 15 + C:0E74H LINE# 16 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 8 + + + C:0E79H LINE# 17 + C:0E81H LINE# 18 + C:0E84H LINE# 19 + C:0E87H LINE# 20 + C:0E87H LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0021H.4 SYMBOL enable + ------- DO + D:0070H SYMBOL temp + D:0071H SYMBOL temp_old + ------- ENDDO + C:0FE9H LINE# 24 + C:0FE9H LINE# 25 + C:0FE9H LINE# 28 + C:0FECH LINE# 29 + C:0FF1H LINE# 31 + C:0FF4H LINE# 32 + C:0FFAH LINE# 33 + C:0FFAH LINE# 34 + C:0FFDH LINE# 35 + C:1005H LINE# 36 + C:1008H LINE# 37 + C:100BH LINE# 38 + C:100BH LINE# 39 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0021H.5 SYMBOL enable + ------- DO + D:0072H SYMBOL temp + D:0073H SYMBOL temp_old + ------- ENDDO + C:100CH LINE# 42 + C:100CH LINE# 43 + C:100CH LINE# 46 + C:100FH LINE# 47 + C:1014H LINE# 49 + C:1017H LINE# 50 + C:101DH LINE# 51 + C:101DH LINE# 52 + C:1020H LINE# 53 + C:1028H LINE# 54 + C:102BH LINE# 55 + C:102EH LINE# 56 + C:102EH LINE# 57 + ------- ENDPROC RELAY + ------- PROC MOTOR + B:0021H.6 SYMBOL enable + ------- DO + D:0074H SYMBOL temp + D:0075H SYMBOL temp_old + ------- ENDDO + C:102FH LINE# 60 + C:102FH LINE# 61 + C:102FH LINE# 64 + C:1032H LINE# 65 + C:1037H LINE# 67 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 9 + + + C:103AH LINE# 68 + C:1040H LINE# 69 + C:1040H LINE# 70 + C:1043H LINE# 71 + C:104BH LINE# 72 + C:104EH LINE# 73 + C:1051H LINE# 74 + C:1051H LINE# 75 + ------- ENDPROC MOTOR + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0E88H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0014H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:0E88H LINE# 6 + C:0E88H LINE# 7 + C:0E88H LINE# 9 + C:0E8BH LINE# 10 + C:0E93H LINE# 13 + C:0E9AH LINE# 14 + C:0EA2H LINE# 15 + C:0EA5H LINE# 18 + C:0EACH LINE# 19 + C:0EAFH LINE# 20 + C:0EB2H LINE# 21 + C:0EBAH LINE# 22 + C:0EBDH LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 10 + + + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0C67H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0C67H LINE# 2 + C:0C67H LINE# 3 + C:0C67H LINE# 4 + C:0C69H LINE# 5 + C:0C6BH LINE# 6 + C:0C6DH LINE# 7 + C:0C6FH LINE# 8 + C:0C71H LINE# 9 + C:0C73H LINE# 10 + C:0C76H LINE# 11 + C:0C78H LINE# 12 + C:0C7BH LINE# 13 + C:0C7DH LINE# 14 + C:0C80H LINE# 15 + C:0C82H LINE# 16 + C:0C85H LINE# 17 + C:0C87H LINE# 18 + C:0C89H LINE# 19 + C:0C8BH LINE# 20 + C:0C8DH LINE# 21 + C:0C8FH LINE# 22 + C:0C92H LINE# 23 + C:0C94H LINE# 24 + C:0C97H LINE# 25 + C:0C99H LINE# 26 + C:0C9CH LINE# 27 + C:0C9EH LINE# 28 + C:0CA1H LINE# 29 + C:0CA3H LINE# 30 + C:0CA5H LINE# 31 + C:0CA7H LINE# 32 + C:0CA9H LINE# 33 + C:0CABH LINE# 34 + C:0CAEH LINE# 35 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 11 + + + C:0CB0H LINE# 36 + C:0CB3H LINE# 37 + C:0CB5H LINE# 38 + C:0CB8H LINE# 39 + C:0CBAH LINE# 40 + C:0CBDH LINE# 41 + C:0CBFH LINE# 42 + C:0CC1H LINE# 43 + C:0CC3H LINE# 44 + C:0CC5H LINE# 45 + C:0CC7H LINE# 46 + C:0CCAH LINE# 47 + C:0CCCH LINE# 48 + C:0CCFH LINE# 49 + C:0CD1H LINE# 50 + C:0CD4H LINE# 51 + C:0CD6H LINE# 52 + C:0CD9H LINE# 53 + C:0CDBH LINE# 54 + C:0CDDH LINE# 55 + C:0CE0H LINE# 56 + C:0CE0H LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:1052H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:1052H LINE# 3 + C:1052H LINE# 4 + C:1052H LINE# 5 + C:1055H LINE# 6 + C:105DH LINE# 7 + C:1060H LINE# 9 + C:1063H LINE# 10 + C:106BH LINE# 11 + C:106EH LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE UART + C:0000H SYMBOL _ICE_DUMMY_ + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 12 + + + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + B:00A8H.4 PUBLIC ES + D:00B8H PUBLIC IP + B:0098H.1 PUBLIC TI + D:00D8H PUBLIC CCON + D:0099H PUBLIC SBUF + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + C:10B8H PUBLIC Uart1_Init + D:00D6H PUBLIC T2H + D:00D7H PUBLIC T2L + D:00D0H PUBLIC PSW + C:0003H PUBLIC _putchar + ------- PROC UART1_INIT + C:10B8H LINE# 2 + C:10B8H LINE# 3 + C:10B8H LINE# 4 + C:10BBH LINE# 5 + C:10BEH LINE# 6 + C:10C1H LINE# 7 + C:10C4H LINE# 8 + C:10C7H LINE# 9 + C:10CAH LINE# 10 + C:10CCH LINE# 11 + C:10CEH LINE# 12 + ------- ENDPROC UART1_INIT + ------- PROC _PUTCHAR + D:0007H SYMBOL ch + C:0003H LINE# 13 + C:0003H LINE# 14 + C:0003H LINE# 15 + C:0005H LINE# 16 + C:0008H LINE# 18 + C:000AH LINE# 19 + C:000AH LINE# 20 + ------- ENDPROC _PUTCHAR + ------- ENDMOD UART + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0F7CH PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 13 + + + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:1073H SYMBOL _I2C_Delay + C:10CFH PUBLIC _Da_Write + D:00B8H PUBLIC IP + C:0F56H PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + C:0E0CH PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + C:0EF3H PUBLIC _EEPROM_Write + B:00A0H.0 PUBLIC scl + C:10F3H PUBLIC I2CStart + C:1089H PUBLIC _I2CSendAck + C:0EBEH PUBLIC _I2CSendByte + C:0FD7H PUBLIC I2CWaitAck + C:1102H PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:106FH SYMBOL L?0036 + ------- PROC L?0035 + ------- ENDPROC L?0035 + C:106FH SYMBOL L?0036 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:1073H LINE# 12 + C:1073H LINE# 13 + C:1073H LINE# 15 + C:1073H LINE# 16 + C:1074H LINE# 17 + C:1075H LINE# 18 + C:1076H LINE# 19 + C:1077H LINE# 20 + C:1078H LINE# 21 + C:1079H LINE# 22 + C:107AH LINE# 23 + C:107BH LINE# 24 + C:107CH LINE# 25 + C:107DH LINE# 26 + C:107EH LINE# 27 + C:107FH LINE# 28 + C:1080H LINE# 29 + C:1081H LINE# 30 + C:1082H LINE# 31 + C:1088H LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:10F3H LINE# 35 + C:10F3H LINE# 36 + C:10F3H LINE# 37 + C:10F5H LINE# 38 + C:10F5H LINE# 39 + C:10F8H LINE# 40 + C:10FAH LINE# 41 + C:10FFH LINE# 42 + C:1101H LINE# 43 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 14 + + + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:1102H LINE# 46 + C:1102H LINE# 47 + C:1102H LINE# 48 + C:1104H LINE# 49 + C:1104H LINE# 50 + C:1107H LINE# 51 + C:1109H LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0EBEH LINE# 56 + C:0EC0H LINE# 57 + C:0EC0H LINE# 60 + C:0ECCH LINE# 61 + C:0ECCH LINE# 62 + C:0ECEH LINE# 63 + C:0ED3H LINE# 64 + C:0ED7H LINE# 65 + C:0ED7H LINE# 66 + C:0ED9H LINE# 67 + C:0EDBH LINE# 69 + C:0EDBH LINE# 70 + C:0EDDH LINE# 71 + C:0EDDH LINE# 72 + C:0EE2H LINE# 73 + C:0EE4H LINE# 74 + C:0EE8H LINE# 75 + C:0EEDH LINE# 76 + C:0EF0H LINE# 78 + C:0EF2H LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:0F56H LINE# 82 + C:0F56H LINE# 83 + C:0F56H LINE# 86 + C:0F62H LINE# 87 + C:0F62H LINE# 88 + C:0F62H LINE# 89 + C:0F65H LINE# 90 + C:0F69H LINE# 91 + C:0F6CH LINE# 92 + C:0F6FH LINE# 93 + C:0F71H LINE# 94 + C:0F76H LINE# 95 + C:0F79H LINE# 96 + C:0F7BH LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + C:0FCCH SYMBOL L?0034 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 15 + + + ------- PROC L?0033 + ------- ENDPROC L?0033 + C:0FCCH SYMBOL L?0034 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:0FD7H LINE# 100 + C:0FD7H LINE# 101 + C:0FD7H LINE# 104 + C:0FD7H LINE# 105 + C:0FDAH LINE# 106 + C:0FDFH LINE# 107 + C:0FE1H LINE# 108 + C:0FE6H LINE# 110 + C:0FE8H LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:1089H LINE# 114 + C:1089H LINE# 115 + C:1089H LINE# 116 + C:108BH LINE# 117 + C:1090H LINE# 118 + C:1095H LINE# 119 + C:1095H LINE# 120 + C:1098H LINE# 121 + C:109AH LINE# 122 + C:109CH LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:0F7CH LINE# 126 + C:0F7EH LINE# 127 + C:0F7EH LINE# 130 + C:0F81H LINE# 131 + C:0F83H LINE# 132 + C:0F83H LINE# 133 + C:0F83H LINE# 134 + C:0F86H LINE# 135 + C:0F89H LINE# 136 + C:0F8EH LINE# 137 + C:0F91H LINE# 138 + C:0F96H LINE# 139 + C:0F9BH LINE# 140 + C:0F9EH LINE# 141 + C:0FA0H LINE# 142 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:10CFH LINE# 144 + C:10D1H LINE# 145 + C:10D1H LINE# 147 + C:10D4H LINE# 148 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 16 + + + C:10D9H LINE# 149 + C:10DCH LINE# 151 + C:10DEH LINE# 152 + C:10DEH LINE# 153 + C:10DEH LINE# 154 + C:10E1H LINE# 155 + ------- ENDPROC _DA_WRITE + ------- PROC _EEPROM_WRITE + D:0076H SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:007AH SYMBOL num + C:0EF3H LINE# 162 + C:0EF9H LINE# 163 + C:0EF9H LINE# 165 + C:0EF9H LINE# 166 + C:0EF9H LINE# 167 + C:0EF9H LINE# 169 + C:0EF9H LINE# 170 + C:0EFCH LINE# 171 + C:0F03H LINE# 172 + C:0F03H LINE# 173 + C:0F18H LINE# 174 + C:0F1BH LINE# 175 + C:0F20H LINE# 176 + C:0F22H LINE# 177 + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:007BH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:007FH SYMBOL num + C:0E0CH LINE# 183 + C:0E12H LINE# 184 + C:0E12H LINE# 186 + C:0E12H LINE# 187 + C:0E12H LINE# 188 + C:0E12H LINE# 190 + C:0E12H LINE# 191 + C:0E15H LINE# 194 + C:0E18H LINE# 195 + C:0E1DH LINE# 196 + C:0E20H LINE# 197 + C:0E27H LINE# 198 + C:0E27H LINE# 199 + C:0E3CH LINE# 200 + C:0E40H LINE# 201 + C:0E44H LINE# 203 + C:0E49H LINE# 204 + C:0E4BH LINE# 205 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ?C?FPDIV + C:0029H PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FCAST + C:00D0H PUBLIC ?C?FCASTC + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 17 + + + C:00CBH PUBLIC ?C?FCASTI + C:00C6H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE PRINTF + D:0052H PUBLIC ?_PRINTF?BYTE + D:0052H PUBLIC ?_SPRINTF?BYTE + C:066DH PUBLIC _PRINTF + C:0667H PUBLIC _SPRINTF + ------- ENDMOD PRINTF + + ------- MODULE ?C?FPROUND + C:014EH PUBLIC ?C?FPROUND + ------- ENDMOD ?C?FPROUND + + ------- MODULE ?C?FPCONVERT + C:017DH PUBLIC ?C?FPCONVERT + ------- ENDMOD ?C?FPCONVERT + + ------- MODULE ?C?FPADD + C:0287H PUBLIC ?C?FPADD + C:0283H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + + ------- MODULE ?C?FPMUL + C:0378H PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FTNPWR + C:04AEH PUBLIC ?C?FTNPWR + ------- ENDMOD ?C?FTNPWR + + ------- MODULE ?C?CLDPTR + C:04EEH PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CLDOPTR + C:0507H PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:0534H PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?UIDIV + C:0546H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:059BH PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + + ------- MODULE ?C?PLDIIDATA + C:05A9H PUBLIC ?C?PLDIIDATA + ------- ENDMOD ?C?PLDIIDATA + + ------- MODULE ?C?CCASE + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/10/2024 13:57:12 PAGE 18 + + + C:05B9H PUBLIC ?C?CCASE + ------- ENDMOD ?C?CCASE + + ------- MODULE ?C?MEMSET + C:05DFH PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_DA_WRITE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC + +Program Size: data=124.7 xdata=0 code=4366 +LINK/LOCATE RUN COMPLETE. 6 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Init.obj b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Init.obj new file mode 100644 index 0000000..d9bfa6d Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Init.obj differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Key.obj b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Key.obj new file mode 100644 index 0000000..bd11bea Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Key.obj differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Led.obj b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Led.obj new file mode 100644 index 0000000..a097398 Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Led.obj differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Seg.obj b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Seg.obj new file mode 100644 index 0000000..abd0ed7 Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Seg.obj differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Uart.obj b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Uart.obj new file mode 100644 index 0000000..9763f92 Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Uart.obj differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Ultrasonic.obj b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/Ultrasonic.obj differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/ds1302.obj b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/ds1302.obj differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/iic.obj b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/iic.obj new file mode 100644 index 0000000..23f832d Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/iic.obj differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/main.obj b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/main.obj new file mode 100644 index 0000000..8fe1b0a Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/main.obj differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/onewire.obj b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/onewire.obj new file mode 100644 index 0000000..772b6d9 Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/onewire.obj differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan new file mode 100644 index 0000000..2fcca10 Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan differ diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan.build_log.htm b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..8e88973 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan.build_log.htm @@ -0,0 +1,54 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 + Target DLL: VDM51.DLL +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\demo_zuolan_new\User\zuolan.uvproj +Project File Date: 03/28/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling Uart.c... +compiling iic.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_DA_WRITE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC +Program Size: data=124.7 xdata=0 code=4366 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 6 Warning(s). +
+ + diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan.hex b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan.hex new file mode 100644 index 0000000..0df33d6 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan.hex @@ -0,0 +1,317 @@ +:0F10E4004E6F697365733A25302E316664420092 +:100DBA00084A0000000000000000083B050A0A0A71 +:100DCA000A0A0A0A08270000000000000000014978 +:010DDA0041D7 +:100D5000AE47AF487C007D0A120546ED4C705A1232 +:100D60000C678F22E5256522FF5522F523E522F445 +:100D70005FF524852225AF237E00EF640C70080503 +:100D800046E5465401F546E5466401702CEF6410D3 +:100D90004E7011E549645A7003FF8005E54924054A +:100DA000FF8F4922E5236411700FE54970047F5AD3 +:090DB0008005E54924FBFF8F4991 +:010DB9002217 +:100A7A00AE47AF487C007D32120546ED4C6003025A +:100A8A000B447F03120F7CEF75F0B4A4FFAEF07C29 +:100A9A00007D331205468E2F8F30E54975F00AA482 +:100AAA00FFD3E5309FE52F95F04003D38001C39231 +:100ABA000A753B0BE54604F53CE54614604F0470A5 +:100ACA0079752D01753F0A753E0A753D0AAE2FAF3D +:100ADA00307C007D641205467C007D0A120546EDD5 +:100AEA004C70047F0A8002AF058F40AE2FAF307C76 +:100AFA00007D0A1205467C007D0A1205468D41AE2C +:100B0A002FAF307C007D0A1205468D4222E4F52D76 +:100B1A0075400A753F0A753E0A753D0AE54975F042 +:100B2A000A8475F00A84AFF0EF70047F0A80008FA0 +:0B0B3A0041E54975F00A8485F0422275 +:100FA100AF467E00EF70047D0180027D008D4AEF27 +:100FB10064014E70047F0180027F008F4BA209E41F +:040FC10033F5512291 +:100CE100E543606AC3E544940A74809480405FC21E +:100CF1000BE4F544E5467044E5316452703EE5325B +:100D010064657038E53364747032E534B4752DE58B +:100D110035B47228E536B46E23AC2FAD30E4120041 +:100D2100CBE4FBFA792078411200298F588E578D38 +:100D3100568C557BFF7A1079E412066DAF437E0025 +:0F0D41007D007B007A0079311205DFE4F5432253 +:10000E00538E7F5389F0758A18758CFCC28DD28CF5 +:05001E00D2A9D2AF22BF +:03000B00020B45A0 +:100B4500C0E0C0F0C083C082C0D075D000C000C076 +:100B550001C002C003C004C005C006C0070548E5C2 +:100B65004870020547FFAE47BE0309BFE806754753 +:100B7500007548000545E54564087002F545300BEC +:100B8500020544300A110526E5266464700EF52633 +:100B9500A209B392098005752600C209743B254553 +:100BA500F8E6FD74272545F8E6FBAF45120E887477 +:100BB5004A2545F8E6FDAF45120E4ED007D006D0C2 +:100BC50005D004D003D002D001D000D0D0D082D03F +:060BD50083D0F0D0E032F5 +:03002300020F25A4 +:100F2500C0E0C0D075D000C000309810D20B754419 +:100F35000074312543F8A6990543C298D3E5439437 +:100F45000A748094804003754300D000D0D0D0E06F +:010F55003269 +:1010A10012105212000E1210B8120D50120A7A12BA +:0710B1000CE1120FA180F217 +:100DDB00016E00016FFF0170000171FF01720001D4 +:080DEB0073FF0174000175FFA4 +:100E4E00ED600FA8077401088002C333D8FC426E10 +:100E5E00800EA8077401088002C333D8FCF4526ECA +:100E6E00E56E656F6013E56EF4F580E5A0541F44E2 +:090E7E0080F5A053A01F856E6FE2 +:010E87002248 +:100FE900300C0543704080035370BFE57065716034 +:100FF90011857080E5A0541F44A0F5A053A01F855A +:02100900707104 +:01100B0022C2 +:10100C00300D0543721080035372EFE57265736007 +:10101C0011857280E5A0541F44A0F5A053A01F8534 +:02102C007273DD +:01102E00229F +:10102F00300E0543742080035374DFE574657560DB +:10103F0011857480E5A0541F44A0F5A053A01F850F +:02104F007475B6 +:01105100227C +:100DF3000C08C0F9A4B0999282F88090FFC108143E +:080E03000102040810204080E8 +:100E88007580FFE5A0541F44E0F5A074142FF8E620 +:100E9800F580E5A0541F44C0F5A053A01F74082D89 +:100EA800F8E6F580EB600353807FE5A0541F44E02B +:060EB800F5A053A01F226B +:100C6700E4FFC2A9C2C4D2C2D2B5D2B420B3027FB4 +:100C77000420B2027F0520B1027F0620B0027F0761 +:100C8700D2C4C2C2D2B5D2B420B3027F0820B20206 +:100C97007F0920B1027F0A20B0027F0BD2C4D2C2E3 +:100CA700C2B5D2B420B3027F0C20B2027F0D20B1AF +:100CB700027F0E20B0027F0FD2C4D2C2D2B5C2B417 +:100CC70020B3027F1020B2027F1120B1027F1220D1 +:090CD700B0027F13D2A975B0FF31 +:010CE00022F1 +:101052007580FFE5A0541F4480F5A053A01FE4F55E +:0D10620080E5A0541F44A0F5A053A01F225C +:1010B800759850438E01438E0475D7C775D6FE4385 +:0710C8008E10D2ACD2AF2262 +:080003008F993099FDC299228A +:04106F00D2A07F0587 +:10107300000000000000000000000000000000AEBF +:06108300071FEE70EB22D6 +:0F10F300D2A112106FC2A17F05121073C2A022EA +:0C110200C2A112106FD2A17F0502107371 +:020EBE00AD077E +:100EC000E4FCECC39408748094805024C2A07F0595 +:100ED000121073ED30E704D2A18002C2A17F051287 +:100EE0001073D2A0ED25E0FD7F051210730C80D2A7 +:020EF000C2A09E +:010EF20022DD +:100F5600E4FCECC3940874809480501712106FED73 +:100F660025E0FD30A103430501C2A07F05121073E1 +:050F76000C80DFAF0557 +:010F7B002253 +:100FC500AB051210F37FA0120EBE120FD7AF03129E +:020FD5000EBE4E +:100FD70012106FA2A1E433FDC2A07F05121073AFF8 +:010FE7000504 +:010FE80022E6 +:10108900C2A0EF24FF92A17F0512107312106FC244 +:08109900A0D2A17F0502107333 +:020F7C00AB07C1 +:100F7E001210F37F90120FCC1210F37F91120EBE4F +:100F8E00120FD7120F56AD077F01121089121102E0 +:020F9E00AF059D +:010FA000222E +:1010CF00AB071210F37F90120EBE120FD77F411293 +:0510DF000FCC0211021C +:100EF3008B768A778978120FC5AF7A157AEF601FE0 +:100F0300AB760578E578AA777002057714F91204B1 +:100F1300EEFF120EBE120FD77FC812107380DA02D3 +:020F23001102B9 +:100E0C008B7B8A7C897D120FC51210F37FA1120E89 +:100E1C00BE120FD7AF7F157FEF6024120F56AB7B3E +:100E2C00057DE57DAA7C7002057C14F9EF12053472 +:100E3C00E57F6004E4FF80027F0112108980D502F7 +:020E4C00110291 +:10002600020143EC5D046005E859047003020139DE +:10003600120104580460F6EC4860F2EC7004FDFE10 +:10004600FF22C860DB2481C85009C39860025006AD +:100056000201409850CAF582E9294B4A7005AB82E5 +:1000660002012F75F0007C1A7880C3EF9BEE9AEDA3 +:1000760099400DC3EF9BFFEE9AFEED99FDE842F025 +:10008600DC23ACF0D0E0FFD0E0FED0E0FDAB822078 +:10009600E7101BEB60BAEC2CFCEF33FFEE33FEED02 +:1000A60033FD02011BE803F830E705C0F075F000E8 +:1000B600EF2FFFEE33FEED33FD40B830E7C280AAE6 +:1000C60075F020800E75F010800575F0087D007EB5 +:1000D600007F003392D530D50312059BEC334010D8 +:1000E600EF33FFEE33FEED33FDEC33FCD5F0ED22BE +:0E00F600E5F0247EA2D513CC92E7CDCEFF22FA +:10060B00E5692455F8E605692278523007027855DA +:10061B00E475F0011205A90204EE2000EB7F2ED247 +:10062B00008018EF540F2490D43440D4FF30040BC7 +:10063B00EF24BFB41A0050032461FFE56A60021572 +:10064B006A056DE56D7002056C30070D7852E47527 +:10065B00F0011205A9EF0205340200037403D2075F +:10066B008003E4C207F5698B528A538954E4F56A17 +:10067B00F56CF56DE56A60077F2012064680F5750F +:10068B006BFFC201C200C202C203C205C206C2088E +:10069B00120614FF700D3007057F00120657AF6D61 +:1006AB00AE6C22B4255FC2D5C204120614FF24D04F +:1006BB00B40A00501A75F00A786A30D50508B6FFEF +:1006CB000106C6A426F620D5047002D20380D924D5 +:1006DB00CFB41A00EF5004C2E5D204020944D20190 +:1006EB0080C6D20080C0D20280BCD2D580BAD205DF +:1006FB0080B47F201206462002077401B56A0040C1 +:10070B00F112060BFF12064602067FD208D20680B4 +:10071B009512060BFB12060BFA12060BF94A4B70DD +:10072B0006793B7A0A7BFF20022EE56A602A7E005F +:10073B008E8275830012050760060EEE656B70F0F6 +:10074B00C2D5EBC0E0EAC0E0E9C0E0EE1209A4D0EC +:10075B00E0F9D0E0FAD0E0FB1204EEFF60AAEBC0A8 +:10076B00E0EAC0E0E9C0E0120646D0E02401F9D08F +:10077B00E03400FAD0E0FBE56B0460DCD56BD9808C +:10078B0087D20280A212098760F7E56B7001041211 +:10079B00014EA96B600DE56B600914F56B120A2E07 +:1007AB00EF60F3EA30E702F404C3995077EAF425DB +:1007BB006B0430E701E404F56B800D12098760C10F +:1007CB00EA056B256B12014EEA7868F630E701E417 +:1007DB00256B04D56B04200501141209A4E4C0E0B9 +:1007EB00120A2E7868E6601320E70714F612062E1D +:1007FB00802204F6D0E014C0E07F0012062EE56BD9 +:10080B006007120625156B800B300503120625D0E9 +:10081B00E002067FD0E00480C512098760A0E56B7B +:10082B000412014E7868EAF6E56B200502600104BC +:05083B0024041209A4D1 +:1008400074FF04C0E0120A2E12062EE56B2005028A +:100850006003120625D0E0B56BE87F4512063878B4 +:1008600068E67F2B30E7047F2DF404C0E0120646D3 +:10087000D0E075F00A84C0F012062FD0E012062FE7 +:1008800002067F791080027908C206C2088008D269 +:10089000D5790A8004790AC2D5E56B047002F56B3C +:1008A000E4FAFDFEFF12060BFC7B08200113120682 +:1008B0000BFD7B1030000A12060BFE12060BFF7BAD +:1008C00020EC3382D592D55013C3E43000069FFF4D +:1008D000E49EFEE42001039DFDE49CFCE4CBF8C211 +:1008E00001EC700CCFCECDCCE824F8F870F3801773 +:1008F000C3EF33FFEE33FEED33FDEC33FCEB33FBA4 +:10090000994002FB0FD8E9EB300105F8D0E0C4486C +:10091000B201C0E00AEC4D4E4F78207B0070C2EA75 +:10092000B56B0040BCC0E01209A6D0F0D0E02001B9 +:1009300004C4C0E0C4B201C0F012062FD0F0D5F05C +:10094000EB02067F1205B9071C5308835806ED4CCD +:1009500006E94208874F088F44088F490702430879 +:10096000955507C6460824450790470A5B5006F18F +:100970002D06F52E07182B06F9230716200A442A00 +:1009800006B14800000710E56BB4FF03756B061253 +:10099000060BFC12060BFD12060BFE12060BFF786F +:1009A0006102017D790AA2D5200314300509B9102E +:1009B000020404B9080104A2D52006025001042053 +:1009C00002689202B56A005034C0E07F20300319FB +:1009D0007F30A20272067205500F1209FDC202C2D8 +:1009E00006C205C2087F30800F300503E9C0E0125F +:1009F0000646300503D0E0F9D0E0B56ACC300517E3 +:100A00007F30B9100C1206467F583004077F78807B +:100A100003B908031206463002057F2D0206467F01 +:100A2000202008F87F2B2006F322920280CF7F003F +:100A3000B4070050052461F8E6FF22286E756C6C3F +:100A40002900D20112060B3001F8C201786A30D5B4 +:100A50000108F60206B12D5043495812060B240333 +:100A6000B405004001E4900A5693120637743A1216 +:0A0A70000637D203756A04020883FA +:10010400E9D2E7C933E833F892D5EDD2E7CD33EC41 +:0701140033FC5002B2D522BA +:10011B00EC30E7100FBF000C0EBE00080DBD000445 +:10012B000BEB6014A2D5EB13FCED92E7FD2274FFF1 +:10013B00FCFDFEFF22E480F8A2D574FF13FC7D804A +:03014B00E480EF5E +:10014E00F920E72824F950037907E4F42402FB1878 +:10015E00DBFDE624FB5014E9600DE4F618E604F628 +:0F016E00B40A08E4F6D9F57401F60A22C2D522C4 +:10017D00ED33EC3392D5FA602AB4FF33EDC2E77B51 +:10018D00FF60067A0179A2E4227A0179AB20D504C9 +:10019D007A0179A6224E614E002B494E46002D491B +:1001AD004E4600E47A08F608DAFC7B00740722E874 +:1001BD00C0E0ECC0E0EDC0E0EEC0E0EFC0E0EA75FD +:1001CD00F010A4CAABF075F04DA42BFBE435F0FC98 +:1001DD00EA2410FAEB34C5FBEC34D9FCEDC2E7FF91 +:1001ED0075F056A4F42411C5F0F434C58FF0A42A8B +:1001FD00E5F03BE43CF620E7141204AED0E0FFD06E +:10020D00E0FED0E0FDD0E0FC1200298014F40412D1 +:10021D0004AED0E0FFD0E0FED0E0FDD0E0FC120354 +:10022D0078D0E0F8E6FAEDD2E7CD33EC332482FB5B +:10023D00E4C3CF33CFCE33CECD33CD33DBF37B071A +:10024D0075F00A846004F6081B0AE5F0F6088FF0D5 +:10025D00740AA4FFACF08EF0740AA42CFEACF0501E +:10026D00010C8DF0740AA42CFDE435F0F608DBDEEC +:03027D00740722E1 +:10028000020139E86480F8E933E83360110460F072 +:10029000ED33EC337009E8FCE9FDEAFEEBFF2204E4 +:1002A00060DED3EB9FEA9EE99DE8C2E78CF0C2F7DF +:1002B00095F0400CE8CCF8E9CDF9EACEFAEBCFFBAB +:1002C00012010485D0F05804700320D5B3E80470FF +:1002D000075002B2D502014392D5EC0460F7E4CC9A +:1002E000C0E0C398F8603B94186008400DD0E0FB74 +:1002F00002011BE4FBFAC9FC8028E830E406E4C9EB +:10030000FBE4CAFCE830E305E4C9CACBFCE85407C7 +:100310006010F8C3E913F9EA13FAEB13FBEC13FCD2 +:10032000D8F130F52FC3E49CFCEF9BFFEE9AFEED75 +:1003300099FDD0E0FBEF4E4D4C701222DB03020121 +:1003400040EC2CFCEF33FFEE33FEED33FDED30E7F8 +:10035000EB02011BEF2BFFEE3AFEED39FDD0E0FB87 +:1003600050130BBB0003020143ED13FDEE13FEEF30 +:0803700013FFEC13FC02011B5A +:10037800EC4D6011E8497017ED33EC3304600DE47F +:10038800FCFFFEFD22E933E8330470F8020139125C +:10039800010458046009E4CC24815006285009025D +:1003A8000143284003020140C0E0EB4A7044B98091 +:1003B80006D0E0FB02012FEF4E701CBD8008EBFF5A +:1003C800EAFEE9FD80EBE98DF0A4FEE5F0020461A8 +:1003D800E9CDF9EAFEEBFFEF89F0A4FCE5F0CE8960 +:1003E800F0A42EFFE435F0CD89F0A42DFEE435F01D +:1003F8008067EF4E7005BD80D780C3EF8BF0A4AC4B +:10040800F0EE8BF0A42CFCE435F0F8EF8AF0A42C85 +:10041800E5F038FCE433CB8DF0A42CFCE5F03BF898 +:10042800EE8AF0A42CFCE5F038F8E433CF89F0A488 +:100438002CFCE5F038CF3400CE89F0A42FFFE5F08E +:100448003EFEE433C98DF0A42EFEE5F039CD8AF0E6 +:10045800A42FFFE5F03EFEE43DFD33D0E0FB50075E +:100468000BBB000F020143EC2CFCEF33FFEE33FE15 +:06047800ED33FD02011B43 +:10047E003F8000004120000042C80000447A000086 +:10048E00461C400047C35000497424004B18968008 +:10049E004CBEBC205A0E1BCA6753C21C749DC5AEFF +:1004AE00FB60065407601C23231204DCEB543860F7 +:1004BE00091204C81204D7120378ECF8EDF9EEFA1B +:1004CE00EFCB22EB1204D780F1543803241C900496 +:1004DE007EFE93FC0EEE93FD0EEE930ECE93FF2258 +:03000000020BDB15 +:0C0BDB00787FE4F6D8FD75817F020C22C3 +:1004EE00BB010689828A83E0225002E722BBFE020C +:0904FE00E32289828A83E493223F +:10050700BB010CE58229F582E5833AF583E02250A9 +:1005170006E92582F8E622BBFE06E92582F8E222F3 +:0D052700E58229F582E5833AF583E493220D +:10053400BB010689828A83F0225002F722BBFE01A6 +:02054400F322A0 +:10054600BC000BBE0029EF8DF084FFADF022E4CC99 +:10055600F875F008EF2FFFEE33FEEC33FCEE9DEC62 +:10056600984005FCEE9DFE0FD5F0E9E4CEFD22EDA8 +:10057600F8F5F0EE8420D21CFEADF075F008EF2FF2 +:10058600FFED33FD4007985006D5F0F222C398FDE3 +:050596000FD5F0EA2280 +:0E059B00C3E49FFFE49EFEE49DFDE49CFC2271 +:1005A900FAE6FB0808E6F925F0F618E6CA3AF62253 +:1005B900D083D082F8E4937012740193700DA3A3D1 +:1005C90093F8740193F5828883E4737402936860E5 +:0605D900EFA3A3A380DFE5 +:1005DF00EF4E6012EF60010EEDBB010B89828A8333 +:1005EF00F0A3DFFCDEFA2289F05007F709DFFCA940 +:0C05FF00F022BBFEFCF309DFFCA9F02297 +:100BE7000210A1E493A3F8E493A34003F68001F273 +:100BF70008DFF48029E493A3F85407240CC8C3330F +:100C0700C4540F4420C8834004F456800146F6DFDD +:100C1700E4800B0102040810204080900DBAE47EA6 +:100C2700019360BCA3FF543F30E509541FFEE493D2 +:100C3700A360010ECF54C025E060A840B8E493A399 +:100C4700FAE493A3F8E493A3C8C582C8CAC583CAC4 +:100C5700F0A3C8C582C8CAC583CADFE9DEE780BE7C +:010E0B0000E6 +:00000001FF diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan.lnp b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan.lnp new file mode 100644 index 0000000..78b18b8 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/Objects/zuolan.lnp @@ -0,0 +1,9 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\Uart.obj", +".\Objects\iic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/main.c b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/main.c new file mode 100644 index 0000000..f742c45 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/main.c @@ -0,0 +1,174 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ڷ */ +uchar Uart_Buf[10]; // ڽյ +uchar Uart_Rx_Index; // ڽյݵָ + +/* ʱ䷽ */ +uint time_all_1s; +uchar Sys_Tick; +uchar time_100ms; +/* ж */ +bit Uart_Flag; +bit Wring_Flag; +bit Led_Blink_Flag; +/* ʾ */ +uchar Seg_show_mode; // 0 ֱ 1 ʾ +/* */ +uint Noise_Value_10x; +uchar Noise_Para = 65; +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (time_all_1s % 10) + return; + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 12) + Seg_show_mode = (++Seg_show_mode) % 2; + if (Seg_show_mode == 1) + { + if (Key_Down == 16) + Noise_Para = (Noise_Para == 90) ? 0 : Noise_Para + 5; + else if (Key_Down == 17) + Noise_Para = (Noise_Para == 0) ? 90 : Noise_Para - 5; + } +} +/* ܴ */ +void Seg_Proc() +{ + if (time_all_1s % 50) + return; + Noise_Value_10x = Ad_Read(0x03) * 180 / 51; + Wring_Flag = Noise_Value_10x > Noise_Para * 10; + + Seg_Buf[0] = 11; // U + Seg_Buf[1] = Seg_show_mode + 1; + switch (Seg_show_mode) + { + case 0: + /* ֱʾ */ + Seg_Point[6] = 1; + Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + Seg_Buf[5] = (Noise_Value_10x / 100 % 10 == 0) ? 10 + : Noise_Value_10x / 100 % 10; + Seg_Buf[6] = Noise_Value_10x / 10 % 10; + Seg_Buf[7] = Noise_Value_10x % 10; + break; + + case 1: + /* ֱ */ + Seg_Point[6] = 0; + Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + Seg_Buf[6] = (Noise_Para / 10 % 10 == 0) ? 10 + : Noise_Para / 10 % 10; + Seg_Buf[7] = Noise_Para % 10; + break; + } +} + +/* LED */ +void Led_Proc() +{ + ucLed[0] = (Seg_show_mode == 0); + ucLed[1] = (Seg_show_mode == 1); + ucLed[7] = Led_Blink_Flag; +} + +/* ڴ */ +void Uart_Proc() +{ + if (Uart_Rx_Index == 0) + // ûнյκ + return; + if (Sys_Tick >= 10) + { + Sys_Tick = Uart_Flag = 0; + if (Seg_show_mode == 0) + { + if (Uart_Buf[0] == 'R' && Uart_Buf[1] == 'e' && Uart_Buf[2] == 't' && + Uart_Buf[3] == 'u' && Uart_Buf[4] == 'r' && Uart_Buf[5] == 'n') + printf("Noises:%0.1fdB", (float)Noise_Value_10x / 10.0); + } + memset(Uart_Buf, 0, Uart_Rx_Index); + Uart_Rx_Index = 0; + } +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++time_all_1s == 1000) + time_all_1s = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (Uart_Flag) + Sys_Tick++; + if (Wring_Flag) + { + if (++time_100ms == 100) + { + time_100ms = 0; + Led_Blink_Flag ^= 1; + } + } + else + { + time_100ms = 0; + Led_Blink_Flag = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +/* жϷ */ +void Uart_ISR(void) interrupt 4 +{ + if (RI == 1) // ڽյ + { + Uart_Flag = 1; + Sys_Tick = 0; + Uart_Buf[Uart_Rx_Index] = SBUF; + Uart_Rx_Index++; + RI = 0; + } + if (Uart_Rx_Index > 10) + Uart_Rx_Index = 0; +} +void main() +{ + System_Init(); + Timer0_Init(); + Uart1_Init(); + + while (1) + { + Key_Proc(); + Seg_Proc(); + Uart_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/main.h b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/main.h new file mode 100644 index 0000000..e931983 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/main.h @@ -0,0 +1,12 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "iic.h" +#include "Uart.h" +#include "Init.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/zuolan.uvgui.haze b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/zuolan.uvgui.haze new file mode 100644 index 0000000..504e36b --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/zuolan.uvgui.haze @@ -0,0 +1,1387 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 243 + 472 + 1512 + 731 + + + + 0 + + 464 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000004000000020000000100000033433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6E65775C4472697665725C556172742E680000000006556172742E6800000000C5D4F200FFFFFFFF25443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000FFDC7800FFFFFFFF31433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6E65775C557365725C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF33433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6E65775C4472697665725C556172742E630000000006556172742E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E000000000600002D020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100007E00000070040000EB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000001602000000060000E5020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000EB000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000CF010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000FE010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100004E020000000000004F00000090010000FE0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000BF01000070040000400200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FE010000000600000202000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000520200000006000035030000000000000202000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2026 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000250319600000000000000030002503103736275027362000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 2 + + ..\Driver\Uart.h + 20 + 1 + 1 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 5 + 36 + 56 + 1 + + 0 + + + ..\Driver\Uart.c + 0 + 1 + 1 + 1 + + 0 + + + + +
diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/zuolan.uvopt b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/zuolan.uvopt new file mode 100644 index 0000000..c1791ff --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/zuolan.uvopt @@ -0,0 +1,258 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + -1 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 1 + 0 + 0 + 0 + ..\Driver\Uart.c + Uart.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + +
diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/zuolan.uvproj b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/zuolan.uvproj new file mode 100644 index 0000000..eef81c6 --- /dev/null +++ b/题目/模拟题/4T14届模拟1_左岚85/4T14届模拟1/User/zuolan.uvproj @@ -0,0 +1,410 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + Uart.c + 1 + ..\Driver\Uart.c + + + iic.c + 1 + ..\Driver\iic.c + + + + + + + +
diff --git a/题目/模拟题/4T14届模拟1_左岚85/4T14模拟1.png b/题目/模拟题/4T14届模拟1_左岚85/4T14模拟1.png new file mode 100644 index 0000000..1bb94ca Binary files /dev/null and b/题目/模拟题/4T14届模拟1_左岚85/4T14模拟1.png differ diff --git a/题目/模拟题/4T14届模拟2_左岚85.zip b/题目/模拟题/4T14届模拟2_左岚85.zip new file mode 100644 index 0000000..4b8901a Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85.zip differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2.png b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2.png new file mode 100644 index 0000000..fe0d857 Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2.png differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/.vscode/settings.json b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Init.c b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Init.h b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Key.c b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Key.h b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Led.c b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Led.c new file mode 100644 index 0000000..959f839 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Led.c @@ -0,0 +1,57 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief +/// @param enable 0 1 +void Beep(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x40; + else + temp &= ~(0x40); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Led.h b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Led.h new file mode 100644 index 0000000..2ed6596 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Led.h @@ -0,0 +1,4 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Beep(bit enable); +void Relay(bit enable); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Seg.c b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Seg.c new file mode 100644 index 0000000..545e419 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 C +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xc1}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Seg.h b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Uart.c b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Uart.c new file mode 100644 index 0000000..f008d65 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Uart.c @@ -0,0 +1,20 @@ +#include "Uart.h" +void Uart1_Init(void) // 9600bps@12MHz +{ + SCON = 0x50; // 8λ,ɱ䲨 + AUXR |= 0x01; // 1ѡʱ2Ϊʷ + AUXR |= 0x04; // ʱʱ1Tģʽ + T2L = 0xC7; // öʱʼֵ + T2H = 0xFE; // öʱʼֵ + AUXR |= 0x10; // ʱ2ʼʱ + ES = 1; // 򿪴ж + EA = 1; // ж +} +extern char putchar(char ch) +{ + SBUF = ch; // chдSBUF + while (TI == 0) + ; // ȴ + TI = 0; // ɱ־ + return ch; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Uart.h b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Uart.h new file mode 100644 index 0000000..0620fac --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/Uart.h @@ -0,0 +1,3 @@ +#include "STC15F2K60S2.H" +#include "stdio.h" +void Uart1_Init(); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/iic.c b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/iic.c new file mode 100644 index 0000000..a94c8c4 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/iic.c @@ -0,0 +1,142 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + I2CStart(); + I2CSendByte(0x91); + I2CWaitAck(); + temp = I2CReceiveByte(); + I2CSendAck(1); + I2CStop(); + return temp; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/iic.h b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/iic.h new file mode 100644 index 0000000..e521ba5 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/iic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Ad_Read(unsigned char addr); diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/onewire.c b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/onewire.c new file mode 100644 index 0000000..8efce41 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/onewire.c @@ -0,0 +1,98 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "REG52.H" +#include "intrins.h" +sbit DQ = P1 ^ 4; // 单总线数据口 +void Delay4us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 9; + while (--i) + ; +} + +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + Delay4us(); + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0x44); // 启动温度转换 + Delay_OneWire(200); // 等待温度转换 + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0xbe); // 读取温度值 + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/onewire.h b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/Driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Init.lst b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Init.lst new file mode 100644 index 0000000..5da299d --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 04/08/2024 17:12:28 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Key.lst b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Key.lst new file mode 100644 index 0000000..8e92443 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 04/08/2024 17:12:28 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 04/08/2024 17:12:28 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Led.lst b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Led.lst new file mode 100644 index 0000000..bf3fc98 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Led.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 LED 04/08/2024 17:12:28 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief + 23 /// @param enable 0 1 + 24 void Beep(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~(0x40); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 /// @brief ̵ + 41 /// @param enable 0 1 + 42 void Relay(bit enable) + 43 { + 44 1 static unsigned char temp = 0x00; + 45 1 static unsigned char temp_old = 0xff; + 46 1 if (enable) + 47 1 temp |= 0x10; + 48 1 else + 49 1 temp &= ~(0x10); + 50 1 if (temp != temp_old) + 51 1 { + 52 2 P0 = temp; + 53 2 P2 = P2 & 0x1f | 0xa0; + 54 2 P2 &= 0x1f; + C51 COMPILER V9.59.0.0 LED 04/08/2024 17:12:28 PAGE 2 + + 55 2 temp_old = temp; + 56 2 } + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 128 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 6 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 2 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Seg.lst b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Seg.lst new file mode 100644 index 0000000..df62cad --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 04/08/2024 17:12:28 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 C + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xc1}; + 4 // λѡ + 5 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 20 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Uart.lst b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Uart.lst new file mode 100644 index 0000000..cc0df2f --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 04/08/2024 17:12:28 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Ultrasonic.lst b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/ds1302.lst b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/iic.lst b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/iic.lst new file mode 100644 index 0000000..24573f3 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/iic.lst @@ -0,0 +1,171 @@ +C51 COMPILER V9.59.0.0 IIC 04/08/2024 17:12:28 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 04/08/2024 17:12:28 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 04/08/2024 17:12:28 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 231 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/main.lst b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/main.lst new file mode 100644 index 0000000..4ba6a73 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/main.lst @@ -0,0 +1,235 @@ +C51 COMPILER V9.59.0.0 MAIN 04/08/2024 17:12:28 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Buf[8] = {10 , 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 7 uchar Seg_Pos; // ָʾ + 8 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 9 + 10 /* ڷ */ + 11 uchar Uart_Slow_Down; + 12 uchar Uart_Buf[3]; // ڽյ + 13 uchar Uart_Rx_Index; // ڽյݵָ + 14 + 15 /* ʱ䷽ */ + 16 uint time_all_1s; + 17 uchar time_100ms; + 18 + 19 /* */ + 20 uchar Seg_show_mode; // 0 ¶ʾ 1 ѹʾ + 21 + 22 /* */ + 23 uint T_value_10x; // 10¶ֵ + 24 uint V_value_100x; // 100ѹֵ + 25 + 26 /* ж */ + 27 bit Data_send_flag; // жǷӦ÷ + 28 bit Lock_uart_change; // ޸ҳ湦Ƿ + 29 bit Led_blink_flag; // ˸־ + 30 + 31 /* ݴ */ + 32 void Data_Proc() + 33 { + 34 1 if (time_all_1s % 100 == 0) + 35 1 { + 36 2 // ADȡ + 37 2 V_value_100x = (float)Ad_Read(0x03) / 51.0 * 100; + 38 2 } + 39 1 if (time_all_1s % 500 == 0) + 40 1 { + 41 2 // ¶ȶȡ + 42 2 T_value_10x = rd_temperature() * 10; + 43 2 } + 44 1 } + 45 /* ̴ */ + 46 void Key_Proc() + 47 { + 48 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 49 1 if (time_all_1s % 10) + 50 1 return; + 51 1 Key_Val = Key_Read(); + 52 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 53 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 54 1 Key_Old = Key_Val; + C51 COMPILER V9.59.0.0 MAIN 04/08/2024 17:12:28 PAGE 2 + + 55 1 if (Key_Down == 12) + 56 1 Data_send_flag = 1; + 57 1 if (Key_Down == 4) + 58 1 Lock_uart_change = 1; + 59 1 if (Lock_uart_change && Key_Down == 5) + 60 1 Lock_uart_change = 0; + 61 1 } + 62 /* ܴ */ + 63 void Seg_Proc() + 64 { + 65 1 if (time_all_1s % 20) + 66 1 return; + 67 1 Seg_Buf[0] = 11; // U + 68 1 Seg_Buf[1] = Seg_show_mode + 1; + 69 1 Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 70 1 if (Seg_show_mode == 0) + 71 1 { + 72 2 Seg_Point[5] = 0; + 73 2 Seg_Point[6] = 1; + 74 2 Seg_Buf[5] = T_value_10x / 100 % 10; + 75 2 Seg_Buf[6] = T_value_10x / 10 % 10; + 76 2 Seg_Buf[7] = T_value_10x % 10; + 77 2 } + 78 1 else + 79 1 { + 80 2 Seg_Point[5] = 1; + 81 2 Seg_Point[6] = 0; + 82 2 Seg_Buf[5] = V_value_100x / 100 % 10; + 83 2 Seg_Buf[6] = V_value_100x / 10 % 10; + 84 2 Seg_Buf[7] = V_value_100x % 10; + 85 2 } + 86 1 } + 87 + 88 /* LED */ + 89 void Led_Proc() + 90 { + 91 1 ucLed[0] = (Seg_show_mode == 0); + 92 1 ucLed[1] = (Seg_show_mode == 1); + 93 1 ucLed[2] = Led_blink_flag; + 94 1 Relay(T_value_10x >= 280); + 95 1 Beep(V_value_100x > 360); + 96 1 } + 97 + 98 /* ڴ */ + 99 void Uart_Proc() + 100 { + 101 1 if (time_all_1s % 200) + 102 1 return; + 103 1 if (Data_send_flag) + 104 1 { + 105 2 Data_send_flag = 0; + 106 2 if (Seg_show_mode == 0) + 107 2 printf("TEMP:%0.1f", (float)T_value_10x / 10.0); + 108 2 else + 109 2 printf("Voltage:%0.2fV", (float)V_value_100x / 100.0); + 110 2 } + 111 1 if (Lock_uart_change == 0) + 112 1 { + 113 2 // δ + 114 2 if (Uart_Buf[0] == 'A') + 115 2 Seg_show_mode = 0; + 116 2 if (Uart_Buf[0] == 'B') + C51 COMPILER V9.59.0.0 MAIN 04/08/2024 17:12:28 PAGE 3 + + 117 2 Seg_show_mode = 1; + 118 2 memset(Uart_Buf, 0, 3); + 119 2 Uart_Rx_Index = 0; + 120 2 } + 121 1 } + 122 + 123 /* ʱ0жϳʼ */ + 124 void Timer0_Init(void) // 1@12.000MHz + 125 { + 126 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 127 1 TMOD &= 0xF0; // öʱģʽ + 128 1 TL0 = 0x18; // öʱʼֵ + 129 1 TH0 = 0xFC; // öʱʼֵ + 130 1 TF0 = 0; // TF0־ + 131 1 TR0 = 1; // ʱ0ʼʱ + 132 1 ET0 = 1; + 133 1 EA = 1; + 134 1 } + 135 + 136 /* ʱ0жϺ */ + 137 void Timer0_ISR(void) interrupt 1 + 138 { + 139 1 if (++time_all_1s == 1000) + 140 1 time_all_1s = 0; + 141 1 if (++Seg_Pos == 8) + 142 1 Seg_Pos = 0; + 143 1 if (Lock_uart_change) + 144 1 { + 145 2 if (++time_100ms == 100) + 146 2 { + 147 3 time_100ms = 0; + 148 3 Led_blink_flag ^= 1; + 149 3 } + 150 2 } + 151 1 else + 152 1 { + 153 2 time_100ms = 0; + 154 2 Led_blink_flag = 0; + 155 2 } + 156 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 157 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 158 1 } + 159 + 160 /* жϷ */ + 161 void Uart_ISR(void) interrupt 4 + 162 { + 163 1 if (RI == 1) // ڽյ + 164 1 { + 165 2 Uart_Buf[Uart_Rx_Index] = SBUF; + 166 2 Uart_Rx_Index++; + 167 2 RI = 0; + 168 2 } + 169 1 } + 170 void Delay750ms(void) //@12.000MHz + 171 { + 172 1 unsigned char data i, j, k; + 173 1 + 174 1 _nop_(); + 175 1 _nop_(); + 176 1 i = 35; + 177 1 j = 51; + 178 1 k = 182; + C51 COMPILER V9.59.0.0 MAIN 04/08/2024 17:12:28 PAGE 4 + + 179 1 do + 180 1 { + 181 2 do + 182 2 { + 183 3 while (--k) + 184 3 ; + 185 3 } while (--j); + 186 2 } while (--i); + 187 1 } + 188 void main() + 189 { + 190 1 System_Init(); + 191 1 Timer0_Init(); + 192 1 Uart1_Init(); + 193 1 rd_temperature(); + 194 1 Delay750ms(); + 195 1 T_value_10x = rd_temperature() * 10; + 196 1 Delay750ms(); + 197 1 while (1) + 198 1 { + 199 2 Key_Proc(); + 200 2 Data_Proc(); + 201 2 Seg_Proc(); + 202 2 Uart_Proc(); + 203 2 Led_Proc(); + 204 2 } + 205 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 777 ---- + CONSTANT SIZE = 28 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 42 ---- + IDATA SIZE = ---- ---- + BIT SIZE = 3 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/onewire.lst b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/onewire.lst new file mode 100644 index 0000000..b10ec69 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/onewire.lst @@ -0,0 +1,125 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 04/08/2024 17:12:28 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit DQ = P1 ^ 4; // 单总线数据口 + 10 void Delay4us(void) //@12.000MHz + 11 { + 12 1 unsigned char data i; + 13 1 + 14 1 _nop_(); + 15 1 _nop_(); + 16 1 i = 9; + 17 1 while (--i) + 18 1 ; + 19 1 } + 20 + 21 // + 22 void Delay_OneWire(unsigned int t) + 23 { + 24 1 unsigned char i; + 25 1 while (t--) + 26 1 { + 27 2 for (i = 0; i < 12; i++) + 28 2 ; + 29 2 } + 30 1 } + 31 + 32 // + 33 void Write_DS18B20(unsigned char dat) + 34 { + 35 1 unsigned char i; + 36 1 for (i = 0; i < 8; i++) + 37 1 { + 38 2 DQ = 0; + 39 2 DQ = dat & 0x01; + 40 2 Delay_OneWire(5); + 41 2 DQ = 1; + 42 2 dat >>= 1; + 43 2 } + 44 1 Delay_OneWire(5); + 45 1 } + 46 + 47 // + 48 unsigned char Read_DS18B20(void) + 49 { + 50 1 unsigned char i; + 51 1 unsigned char dat; + 52 1 + 53 1 for (i = 0; i < 8; i++) + C51 COMPILER V9.59.0.0 ONEWIRE 04/08/2024 17:12:28 PAGE 2 + + 54 1 { + 55 2 DQ = 0; + 56 2 dat >>= 1; + 57 2 DQ = 1; + 58 2 Delay4us(); + 59 2 if (DQ) + 60 2 { + 61 3 dat |= 0x80; + 62 3 } + 63 2 Delay_OneWire(5); + 64 2 } + 65 1 return dat; + 66 1 } + 67 + 68 // + 69 bit init_ds18b20(void) + 70 { + 71 1 bit initflag = 0; + 72 1 + 73 1 DQ = 1; + 74 1 Delay_OneWire(12); + 75 1 DQ = 0; + 76 1 Delay_OneWire(80); + 77 1 DQ = 1; + 78 1 Delay_OneWire(10); + 79 1 initflag = DQ; + 80 1 Delay_OneWire(5); + 81 1 + 82 1 return initflag; + 83 1 } + 84 + 85 float rd_temperature() + 86 { + 87 1 unsigned char low, high; + 88 1 init_ds18b20(); + 89 1 Write_DS18B20(0xcc); // 跳过ROM + 90 1 Write_DS18B20(0x44); // 启动温度转换 + 91 1 Delay_OneWire(200); // 等待温度转换 + 92 1 init_ds18b20(); + 93 1 Write_DS18B20(0xcc); // 跳过ROM + 94 1 Write_DS18B20(0xbe); // 读取温度值 + 95 1 low = Read_DS18B20(); + 96 1 high = Read_DS18B20(); + 97 1 return (float)(high << 8 | low) * 0.0625; + 98 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 212 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/zuolan.m51 b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/zuolan.m51 new file mode 100644 index 0000000..b5ecf71 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Listings/zuolan.m51 @@ -0,0 +1,1149 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\Uart.obj, .\Objects\iic.obj, .\Objects\onewire.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) R +>> AMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\Uart.obj (UART) + .\Objects\iic.obj (IIC) + .\Objects\onewire.obj (ONEWIRE) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (PRINTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPROUND) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPCONVERT) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FTNPWR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?PLDIIDATA) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CCASE) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0014H UNIT ?DT?SEG + 001CH 0004H *** GAP *** + BIT 0020H.0 0001H.1 UNIT _BIT_GROUP_ + BIT 0021H.1 0000H.3 UNIT ?BI?MAIN + 0021H.4 0000H.4 *** GAP *** + DATA 0022H 002AH UNIT ?DT?MAIN + DATA 004CH 001CH UNIT _DATA_GROUP_ + DATA 0068H 0006H UNIT ?DT?LED + IDATA 006EH 0001H UNIT ?STACK + + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 2 + + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0008H UNIT ?PR?_PUTCHAR?UART + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0023H 0003H ABSOLUTE + CODE 0026H 061CH UNIT ?C?LIB_CODE + CODE 0642H 046FH UNIT ?PR?PRINTF?PRINTF + CODE 0AB1H 0094H UNIT ?PR?SEG_PROC?MAIN + CODE 0B45H 0091H UNIT ?PR?TIMER0_ISR?MAIN + CODE 0BD6H 008CH UNIT ?C_C51STARTUP + CODE 0C62H 0082H UNIT ?PR?UART_PROC?MAIN + CODE 0CE4H 007AH UNIT ?PR?KEY_READ?KEY + CODE 0D5EH 0059H UNIT ?PR?DATA_PROC?MAIN + CODE 0DB7H 004BH UNIT ?PR?LED_PROC?MAIN + CODE 0E02H 0049H UNIT ?C_INITSEG + CODE 0E4BH 0045H UNIT ?PR?KEY_PROC?MAIN + CODE 0E90H 003BH UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 0ECBH 003AH UNIT ?PR?_LED_DISP?LED + CODE 0F05H 0037H UNIT ?PR?MAIN?MAIN + CODE 0F3CH 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 0F72H 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 0FA7H 002AH UNIT ?PR?_AD_READ?IIC + CODE 0FD1H 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 0FF8H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 101FH 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 1045H 0026H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 106BH 0023H UNIT ?PR?BEEP?LED + CODE 108EH 0023H UNIT ?PR?RELAY?LED + CODE 10B1H 001EH UNIT ?PR?UART_ISR?MAIN + CODE 10CFH 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 10EDH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 110AH 001CH UNIT ?CO?MAIN + CODE 1126H 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 1140H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 1158H 0017H UNIT ?PR?UART1_INIT?UART + CODE 116FH 0015H UNIT ?PR?I2CWAITACK?IIC + CODE 1184H 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 1193H 000FH UNIT ?PR?I2CSTART?IIC + CODE 11A2H 000CH UNIT ?PR?I2CSTOP?IIC + CODE 11AEH 0007H UNIT ?PR?DELAY4US?ONEWIRE + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +---------------------------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 3 + + + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?UART1_INIT?UART + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?DATA_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?UART_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.0 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?DELAY4US?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?DATA_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_AD_READ?IIC + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +?PR?_AD_READ?IIC ----- ----- ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CWAITACK?IIC ----- ----- ----- ----- + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC ----- ----- ----- ----- + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 4 + + + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDACK?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?UART_PROC?MAIN ----- ----- ----- ----- + +--> ?CO?MAIN + +--> ?PR?PRINTF?PRINTF + +?PR?PRINTF?PRINTF 0020H.0 0001H.1 004CH 001CH + +--> ?PR?_PUTCHAR?UART + +?PR?LED_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?RELAY?LED + +--> ?PR?BEEP?LED + +?PR?RELAY?LED 0020H.0 0000H.1 ----- ----- + +?PR?BEEP?LED 0020H.0 0000H.1 ----- ----- + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:0B45H PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:0026H PUBLIC time_100ms + D:00C8H PUBLIC P5 + B:0021H.1 PUBLIC Data_send_flag + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + B:0021H.2 PUBLIC Led_blink_flag + D:00F8H PUBLIC P7 + C:0DB7H PUBLIC Led_Proc + D:0027H PUBLIC Seg_Point + D:00A8H PUBLIC IE + D:002FH PUBLIC T_value_10x + C:0C62H PUBLIC Uart_Proc + C:0AB1H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + B:0098H.0 PUBLIC RI + D:0031H PUBLIC Uart_Buf + D:0034H PUBLIC Seg_Buf + C:0E4BH PUBLIC Key_Proc + D:003CH PUBLIC Uart_Slow_Down + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 5 + + + D:00D8H PUBLIC CCON + D:003DH PUBLIC Uart_Rx_Index + C:0F05H PUBLIC main + C:000EH PUBLIC Timer0_Init + D:0099H PUBLIC SBUF + D:003EH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:003FH PUBLIC V_value_100x + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:0041H PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + D:0042H PUBLIC time_all_1s + B:0088H.4 PUBLIC TR0 + C:10B1H PUBLIC Uart_ISR + D:0044H PUBLIC ucLed + C:1184H PUBLIC Delay750ms + C:0D5EH PUBLIC Data_Proc + B:0021H.3 PUBLIC Lock_uart_change + D:00D0H PUBLIC PSW + ------- PROC DATA_PROC + C:0D5EH LINE# 32 + C:0D5EH LINE# 33 + C:0D5EH LINE# 34 + C:0D6DH LINE# 35 + C:0D6DH LINE# 37 + C:0D93H LINE# 38 + C:0D93H LINE# 39 + C:0DA2H LINE# 40 + C:0DA2H LINE# 42 + C:0DB6H LINE# 43 + C:0DB6H LINE# 44 + ------- ENDPROC DATA_PROC + ------- PROC KEY_PROC + ------- DO + D:0022H SYMBOL Key_Val + D:0023H SYMBOL Key_Down + D:0024H SYMBOL Key_Up + D:0025H SYMBOL Key_Old + ------- ENDDO + C:0E4BH LINE# 46 + C:0E4BH LINE# 47 + C:0E4BH LINE# 49 + C:0E5AH LINE# 51 + C:0E5FH LINE# 52 + C:0E68H LINE# 53 + C:0E6EH LINE# 54 + C:0E71H LINE# 55 + C:0E7AH LINE# 56 + C:0E7CH LINE# 57 + C:0E82H LINE# 58 + C:0E84H LINE# 59 + C:0E8DH LINE# 60 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 6 + + + C:0E8FH LINE# 61 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:0AB1H LINE# 63 + C:0AB1H LINE# 64 + C:0AB1H LINE# 65 + C:0AC3H LINE# 67 + C:0AC6H LINE# 68 + C:0ACBH LINE# 69 + C:0AD4H LINE# 70 + C:0AD8H LINE# 71 + C:0AD8H LINE# 72 + C:0ADAH LINE# 73 + C:0ADDH LINE# 74 + C:0AF0H LINE# 75 + C:0B04H LINE# 76 + C:0B08H LINE# 77 + C:0B0AH LINE# 79 + C:0B0AH LINE# 80 + C:0B0DH LINE# 81 + C:0B10H LINE# 82 + C:0B23H LINE# 83 + C:0B37H LINE# 84 + C:0B44H LINE# 85 + C:0B44H LINE# 86 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0DB7H LINE# 89 + C:0DB7H LINE# 90 + C:0DB7H LINE# 91 + C:0DC6H LINE# 92 + C:0DD4H LINE# 93 + C:0DDAH LINE# 94 + C:0DEEH LINE# 95 + ------- ENDPROC LED_PROC + ------- PROC UART_PROC + C:0C62H LINE# 99 + C:0C62H LINE# 100 + C:0C62H LINE# 101 + C:0C71H LINE# 103 + C:0C74H LINE# 104 + C:0C74H LINE# 105 + C:0C76H LINE# 106 + C:0C7AH LINE# 107 + C:0C9BH LINE# 109 + C:0CBEH LINE# 110 + C:0CBEH LINE# 111 + C:0CC1H LINE# 112 + C:0CC1H LINE# 114 + C:0CC6H LINE# 115 + C:0CC9H LINE# 116 + C:0CCEH LINE# 117 + C:0CD1H LINE# 118 + C:0CE0H LINE# 119 + C:0CE3H LINE# 120 + C:0CE3H LINE# 121 + ------- ENDPROC UART_PROC + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 7 + + + ------- PROC TIMER0_INIT + C:000EH LINE# 124 + C:000EH LINE# 125 + C:000EH LINE# 126 + C:0011H LINE# 127 + C:0014H LINE# 128 + C:0017H LINE# 129 + C:001AH LINE# 130 + C:001CH LINE# 131 + C:001EH LINE# 132 + C:0020H LINE# 133 + C:0022H LINE# 134 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:0B45H LINE# 137 + C:0B62H LINE# 139 + C:0B73H LINE# 140 + C:0B79H LINE# 141 + C:0B81H LINE# 142 + C:0B83H LINE# 143 + C:0B86H LINE# 144 + C:0B86H LINE# 145 + C:0B8EH LINE# 146 + C:0B8EH LINE# 147 + C:0B90H LINE# 148 + C:0B95H LINE# 149 + C:0B95H LINE# 150 + C:0B97H LINE# 152 + C:0B97H LINE# 153 + C:0B9AH LINE# 154 + C:0B9CH LINE# 155 + C:0B9CH LINE# 156 + C:0BAFH LINE# 157 + C:0BBBH LINE# 158 + ------- ENDPROC TIMER0_ISR + ------- PROC UART_ISR + C:10B1H LINE# 161 + C:10BAH LINE# 163 + C:10BDH LINE# 164 + C:10BDH LINE# 165 + C:10C4H LINE# 166 + C:10C6H LINE# 167 + C:10C8H LINE# 168 + C:10C8H LINE# 169 + ------- ENDPROC UART_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:1184H LINE# 170 + C:1184H LINE# 171 + C:1184H LINE# 174 + C:1185H LINE# 175 + C:1186H LINE# 176 + C:1188H LINE# 177 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 8 + + + C:118AH LINE# 178 + C:118CH LINE# 180 + C:118CH LINE# 182 + C:118CH LINE# 183 + C:118EH LINE# 185 + C:1190H LINE# 186 + C:1192H LINE# 187 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:0F05H LINE# 188 + C:0F05H LINE# 189 + C:0F05H LINE# 190 + C:0F08H LINE# 191 + C:0F0BH LINE# 192 + C:0F0EH LINE# 193 + C:0F11H LINE# 194 + C:0F14H LINE# 195 + C:0F28H LINE# 196 + C:0F2BH LINE# 197 + C:0F2BH LINE# 198 + C:0F2BH LINE# 199 + C:0F2EH LINE# 200 + C:0F31H LINE# 201 + C:0F34H LINE# 202 + C:0F37H LINE# 203 + C:0F3AH LINE# 204 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:108EH PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0ECBH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:106BH PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:0068H SYMBOL temp + D:0069H SYMBOL temp_old + ------- ENDDO + C:0ECBH LINE# 5 + C:0ECBH LINE# 6 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 9 + + + C:0ECBH LINE# 10 + C:0ECEH LINE# 11 + C:0EDDH LINE# 13 + C:0EEBH LINE# 14 + C:0EF1H LINE# 15 + C:0EF1H LINE# 16 + C:0EF6H LINE# 17 + C:0EFEH LINE# 18 + C:0F01H LINE# 19 + C:0F04H LINE# 20 + C:0F04H LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0020H.0 SYMBOL enable + ------- DO + D:006AH SYMBOL temp + D:006BH SYMBOL temp_old + ------- ENDDO + C:106BH LINE# 24 + C:106BH LINE# 25 + C:106BH LINE# 28 + C:106EH LINE# 29 + C:1073H LINE# 31 + C:1076H LINE# 32 + C:107CH LINE# 33 + C:107CH LINE# 34 + C:107FH LINE# 35 + C:1087H LINE# 36 + C:108AH LINE# 37 + C:108DH LINE# 38 + C:108DH LINE# 39 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0020H.0 SYMBOL enable + ------- DO + D:006CH SYMBOL temp + D:006DH SYMBOL temp_old + ------- ENDDO + C:108EH LINE# 42 + C:108EH LINE# 43 + C:108EH LINE# 46 + C:1091H LINE# 47 + C:1096H LINE# 49 + C:1099H LINE# 50 + C:109FH LINE# 51 + C:109FH LINE# 52 + C:10A2H LINE# 53 + C:10AAH LINE# 54 + C:10ADH LINE# 55 + C:10B0H LINE# 56 + C:10B0H LINE# 57 + ------- ENDPROC RELAY + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 10 + + + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0F3CH PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0014H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:0F3CH LINE# 6 + C:0F3CH LINE# 7 + C:0F3CH LINE# 9 + C:0F3FH LINE# 10 + C:0F47H LINE# 13 + C:0F4EH LINE# 14 + C:0F56H LINE# 15 + C:0F59H LINE# 18 + C:0F60H LINE# 19 + C:0F63H LINE# 20 + C:0F66H LINE# 21 + C:0F6EH LINE# 22 + C:0F71H LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0CE4H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 11 + + + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0CE4H LINE# 2 + C:0CE4H LINE# 3 + C:0CE4H LINE# 4 + C:0CE6H LINE# 5 + C:0CE8H LINE# 6 + C:0CEAH LINE# 7 + C:0CECH LINE# 8 + C:0CEEH LINE# 9 + C:0CF0H LINE# 10 + C:0CF3H LINE# 11 + C:0CF5H LINE# 12 + C:0CF8H LINE# 13 + C:0CFAH LINE# 14 + C:0CFDH LINE# 15 + C:0CFFH LINE# 16 + C:0D02H LINE# 17 + C:0D04H LINE# 18 + C:0D06H LINE# 19 + C:0D08H LINE# 20 + C:0D0AH LINE# 21 + C:0D0CH LINE# 22 + C:0D0FH LINE# 23 + C:0D11H LINE# 24 + C:0D14H LINE# 25 + C:0D16H LINE# 26 + C:0D19H LINE# 27 + C:0D1BH LINE# 28 + C:0D1EH LINE# 29 + C:0D20H LINE# 30 + C:0D22H LINE# 31 + C:0D24H LINE# 32 + C:0D26H LINE# 33 + C:0D28H LINE# 34 + C:0D2BH LINE# 35 + C:0D2DH LINE# 36 + C:0D30H LINE# 37 + C:0D32H LINE# 38 + C:0D35H LINE# 39 + C:0D37H LINE# 40 + C:0D3AH LINE# 41 + C:0D3CH LINE# 42 + C:0D3EH LINE# 43 + C:0D40H LINE# 44 + C:0D42H LINE# 45 + C:0D44H LINE# 46 + C:0D47H LINE# 47 + C:0D49H LINE# 48 + C:0D4CH LINE# 49 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 12 + + + C:0D4EH LINE# 50 + C:0D51H LINE# 51 + C:0D53H LINE# 52 + C:0D56H LINE# 53 + C:0D58H LINE# 54 + C:0D5AH LINE# 55 + C:0D5DH LINE# 56 + C:0D5DH LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:10EDH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:10EDH LINE# 3 + C:10EDH LINE# 4 + C:10EDH LINE# 5 + C:10F0H LINE# 6 + C:10F8H LINE# 7 + C:10FBH LINE# 9 + C:10FEH LINE# 10 + C:1106H LINE# 11 + C:1109H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE UART + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + B:00A8H.4 PUBLIC ES + D:00B8H PUBLIC IP + B:0098H.1 PUBLIC TI + D:00D8H PUBLIC CCON + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 13 + + + D:0099H PUBLIC SBUF + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + C:1158H PUBLIC Uart1_Init + D:00D6H PUBLIC T2H + D:00D7H PUBLIC T2L + D:00D0H PUBLIC PSW + C:0003H PUBLIC _putchar + ------- PROC UART1_INIT + C:1158H LINE# 2 + C:1158H LINE# 3 + C:1158H LINE# 4 + C:115BH LINE# 5 + C:115EH LINE# 6 + C:1161H LINE# 7 + C:1164H LINE# 8 + C:1167H LINE# 9 + C:116AH LINE# 10 + C:116CH LINE# 11 + C:116EH LINE# 12 + ------- ENDPROC UART1_INIT + ------- PROC _PUTCHAR + D:0007H SYMBOL ch + C:0003H LINE# 13 + C:0003H LINE# 14 + C:0003H LINE# 15 + C:0005H LINE# 16 + C:0008H LINE# 18 + C:000AH LINE# 19 + C:000AH LINE# 20 + ------- ENDPROC _PUTCHAR + ------- ENDMOD UART + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0FA7H PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:112AH SYMBOL _I2C_Delay + D:00B8H PUBLIC IP + C:101FH PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + B:00A0H.0 PUBLIC scl + C:1193H PUBLIC I2CStart + C:1140H PUBLIC _I2CSendAck + C:0F72H PUBLIC _I2CSendByte + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 14 + + + C:1172H PUBLIC I2CWaitAck + C:11A2H PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:1126H SYMBOL L?0022 + ------- PROC L?0021 + ------- ENDPROC L?0021 + C:1126H SYMBOL L?0022 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:112AH LINE# 12 + C:112AH LINE# 13 + C:112AH LINE# 15 + C:112AH LINE# 16 + C:112BH LINE# 17 + C:112CH LINE# 18 + C:112DH LINE# 19 + C:112EH LINE# 20 + C:112FH LINE# 21 + C:1130H LINE# 22 + C:1131H LINE# 23 + C:1132H LINE# 24 + C:1133H LINE# 25 + C:1134H LINE# 26 + C:1135H LINE# 27 + C:1136H LINE# 28 + C:1137H LINE# 29 + C:1138H LINE# 30 + C:1139H LINE# 31 + C:113FH LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:1193H LINE# 35 + C:1193H LINE# 36 + C:1193H LINE# 37 + C:1195H LINE# 38 + C:1195H LINE# 39 + C:1198H LINE# 40 + C:119AH LINE# 41 + C:119FH LINE# 42 + C:11A1H LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:11A2H LINE# 46 + C:11A2H LINE# 47 + C:11A2H LINE# 48 + C:11A4H LINE# 49 + C:11A4H LINE# 50 + C:11A7H LINE# 51 + C:11A9H LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0F72H LINE# 56 + C:0F74H LINE# 57 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 15 + + + C:0F74H LINE# 60 + C:0F80H LINE# 61 + C:0F80H LINE# 62 + C:0F82H LINE# 63 + C:0F87H LINE# 64 + C:0F8BH LINE# 65 + C:0F8BH LINE# 66 + C:0F8DH LINE# 67 + C:0F8FH LINE# 69 + C:0F8FH LINE# 70 + C:0F91H LINE# 71 + C:0F91H LINE# 72 + C:0F96H LINE# 73 + C:0F98H LINE# 74 + C:0F9CH LINE# 75 + C:0FA1H LINE# 76 + C:0FA4H LINE# 78 + C:0FA6H LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:101FH LINE# 82 + C:101FH LINE# 83 + C:101FH LINE# 86 + C:102BH LINE# 87 + C:102BH LINE# 88 + C:102BH LINE# 89 + C:102EH LINE# 90 + C:1032H LINE# 91 + C:1035H LINE# 92 + C:1038H LINE# 93 + C:103AH LINE# 94 + C:103FH LINE# 95 + C:1042H LINE# 96 + C:1044H LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + ------- PROC L?0023 + ------- ENDPROC L?0023 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:1172H LINE# 100 + C:1172H LINE# 101 + C:1172H LINE# 104 + C:1172H LINE# 105 + C:1175H LINE# 106 + C:117AH LINE# 107 + C:117CH LINE# 108 + C:1181H LINE# 110 + C:1183H LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 16 + + + C:1140H LINE# 114 + C:1140H LINE# 115 + C:1140H LINE# 116 + C:1142H LINE# 117 + C:1147H LINE# 118 + C:114CH LINE# 119 + C:114CH LINE# 120 + C:114FH LINE# 121 + C:1151H LINE# 122 + C:1153H LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:0FA7H LINE# 126 + C:0FA9H LINE# 127 + C:0FA9H LINE# 130 + C:0FACH LINE# 131 + C:0FAEH LINE# 132 + C:0FB1H LINE# 133 + C:0FB3H LINE# 134 + C:0FB6H LINE# 135 + C:0FB9H LINE# 136 + C:0FBEH LINE# 137 + C:0FC1H LINE# 138 + C:0FC6H LINE# 139 + C:0FCBH LINE# 140 + C:0FCEH LINE# 141 + C:0FD0H LINE# 142 + ------- ENDPROC _AD_READ + ------- ENDMOD IIC + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:1045H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:10D3H PUBLIC _Delay_OneWire + C:11AEH PUBLIC Delay4us + C:0FD1H PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:0FF8H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:0E90H PUBLIC rd_temperature + D:00D0H PUBLIC PSW + ------- PROC DELAY4US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:11AEH LINE# 10 + C:11AEH LINE# 11 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 17 + + + C:11AEH LINE# 14 + C:11AFH LINE# 15 + C:11B0H LINE# 16 + C:11B2H LINE# 17 + C:11B4H LINE# 19 + ------- ENDPROC DELAY4US + C:10CFH SYMBOL L?0023 + ------- PROC L?0022 + ------- ENDPROC L?0022 + C:10CFH SYMBOL L?0023 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:10D3H LINE# 22 + C:10D3H LINE# 23 + C:10D3H LINE# 25 + C:10DDH LINE# 26 + C:10DDH LINE# 27 + C:10ECH LINE# 29 + C:10ECH LINE# 30 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:0FD1H LINE# 33 + C:0FD3H LINE# 34 + C:0FD3H LINE# 36 + C:0FDFH LINE# 37 + C:0FDFH LINE# 38 + C:0FE1H LINE# 39 + C:0FE5H LINE# 40 + C:0FE8H LINE# 41 + C:0FEAH LINE# 42 + C:0FEEH LINE# 43 + C:0FF1H LINE# 44 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:1045H LINE# 48 + C:1045H LINE# 49 + C:1045H LINE# 53 + C:1051H LINE# 54 + C:1051H LINE# 55 + C:1053H LINE# 56 + C:1057H LINE# 57 + C:1059H LINE# 58 + C:105CH LINE# 59 + C:105FH LINE# 60 + C:105FH LINE# 61 + C:1062H LINE# 62 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 18 + + + C:1062H LINE# 63 + C:1065H LINE# 64 + C:1068H LINE# 65 + C:106AH LINE# 66 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.0 SYMBOL initflag + ------- ENDDO + C:0FF8H LINE# 69 + C:0FF8H LINE# 70 + C:0FF8H LINE# 71 + C:0FFAH LINE# 73 + C:0FFCH LINE# 74 + C:1003H LINE# 75 + C:1005H LINE# 76 + C:100CH LINE# 77 + C:100EH LINE# 78 + C:1015H LINE# 79 + C:1019H LINE# 80 + C:101CH LINE# 82 + C:101EH LINE# 83 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:0E90H LINE# 85 + C:0E90H LINE# 86 + C:0E90H LINE# 88 + C:0E93H LINE# 89 + C:0E98H LINE# 90 + C:0E9DH LINE# 91 + C:0EA4H LINE# 92 + C:0EA7H LINE# 93 + C:0EACH LINE# 94 + C:0EB1H LINE# 95 + C:0EB6H LINE# 96 + C:0EB9H LINE# 97 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ?C?FPMUL + C:0026H PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FPDIV + C:012FH PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FCAST + C:01D6H PUBLIC ?C?FCASTC + C:01D1H PUBLIC ?C?FCASTI + C:01CCH PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 19 + + + ------- MODULE ?C?CASTF + C:020AH PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE PRINTF + D:004CH PUBLIC ?_PRINTF?BYTE + D:004CH PUBLIC ?_SPRINTF?BYTE + C:06A4H PUBLIC _PRINTF + C:069EH PUBLIC _SPRINTF + ------- ENDMOD PRINTF + + ------- MODULE ?C?FPROUND + C:028BH PUBLIC ?C?FPROUND + ------- ENDMOD ?C?FPROUND + + ------- MODULE ?C?FPCONVERT + C:02BAH PUBLIC ?C?FPCONVERT + ------- ENDMOD ?C?FPCONVERT + + ------- MODULE ?C?FPADD + C:03C4H PUBLIC ?C?FPADD + C:03C0H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + + ------- MODULE ?C?FTNPWR + C:04E5H PUBLIC ?C?FTNPWR + ------- ENDMOD ?C?FTNPWR + + ------- MODULE ?C?CLDPTR + C:0525H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CLDOPTR + C:053EH PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:056BH PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?UIDIV + C:057DH PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:05D2H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + + ------- MODULE ?C?PLDIIDATA + C:05E0H PUBLIC ?C?PLDIIDATA + ------- ENDMOD ?C?PLDIIDATA + + ------- MODULE ?C?CCASE + C:05F0H PUBLIC ?C?CCASE + ------- ENDMOD ?C?CCASE + + ------- MODULE ?C?MEMSET + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/08/2024 17:12:29 PAGE 20 + + + C:0616H PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET + +Program Size: data=106.4 xdata=0 code=4533 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/ExtDll.iex b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Init.obj b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Init.obj new file mode 100644 index 0000000..f5b43ef Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Init.obj differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Key.obj b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Key.obj new file mode 100644 index 0000000..c144926 Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Key.obj differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Led.obj b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Led.obj new file mode 100644 index 0000000..4a44ba9 Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Led.obj differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Seg.obj b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Seg.obj new file mode 100644 index 0000000..062bf62 Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Seg.obj differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Uart.obj b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Uart.obj new file mode 100644 index 0000000..d20643e Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Uart.obj differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Ultrasonic.obj b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/Ultrasonic.obj differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/ds1302.obj b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/ds1302.obj differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/iic.obj b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/iic.obj new file mode 100644 index 0000000..e881cbf Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/iic.obj differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/main.obj b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/main.obj new file mode 100644 index 0000000..5ebafc6 Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/main.obj differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/onewire.obj b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/onewire.obj new file mode 100644 index 0000000..ab1ae7b Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/onewire.obj differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan new file mode 100644 index 0000000..b1e32ba Binary files /dev/null and b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan differ diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan.build_log.htm b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..874bad6 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan.build_log.htm @@ -0,0 +1,43 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: STCMON51.DLL V1, 0, 10, 0 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\4T14ģ2\User\zuolan.uvproj +Project File Date: 04/08/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling Uart.c... +compiling iic.c... +compiling onewire.c... +linking... +Program Size: data=106.4 xdata=0 code=4533 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan.hex b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan.hex new file mode 100644 index 0000000..0c54e15 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan.hex @@ -0,0 +1,334 @@ +:10110A0054454D503A25302E3166A1E600566F6C93 +:0C111A00746167653A25302E326656007D +:100E02000844000000000000000008340A0A0A0A30 +:0E0E12000A0A0A0A082700000000000000007B +:100D5E00AE42AF437C007D6412057DED4C70267F64 +:100D6E0003120FA7AC07E41201D6E4FBFA794C7814 +:100D7E004212012FE4FBFA79C878421200261202C1 +:100D8E000A8E3F8F40AE42AF437C017DF412057D4B +:100D9E00ED4C7014120E90E4FBFA7920784112009B +:090DAE002612020A8E2F8F30225A +:100E4B00AE42AF437C007D0A12057DED4C7035122E +:100E5B000CE48F22E5256522FF5522F523E522F4CC +:100E6B005FF524852225AF237E00EF640C7002D240 +:100E7B0009EF64044E7002D20B300B08EF64054E81 +:040E8B007002C20B24 +:010E8F002240 +:100AB100AE42AF437C007D1412057DED4C60030214 +:100AC1000B4475340BE54104F53575380A75370A61 +:100AD10075360AE5417032F52C752D01AE2FAF3018 +:100AE100FC7D6412057D7C007D0A12057D8D39AE89 +:100AF1002FAF307C007D0A12057D7C007D0A120536 +:100B01007D8D3AAE2FAF308031752C01E4F52DAEDD +:100B11003FAF40FC7D6412057D7C007D0A12057D9E +:100B21008D39AE3FAF407C007D0A12057D7C007D92 +:100B31000A12057D8D3AAE3FAF407C007D0A120559 +:040B41007D8D3B2249 +:100DB700AF417E00EF70047D0180027D008D44EF1E +:100DC70064014E70047F0180027F008F45A20AE410 +:100DD70033F546C3E5309418E52F94014003D380DB +:100DE70001C3920012108ED3E5409468E53F940149 +:0B0DF7004003D38001C3920002106B88 +:100C6200AE42AF437C007DC812057DED4C70723000 +:100C7200094AC209E5417021AC2FAD301201D1E41D +:100C8200FBFA7920784112012F8F528E518D508CB0 +:100C92004F7BFF7A11790A8020AC3FAD40E412010C +:100CA200D1E4FBFA79C8784212012F8F528E518D0E +:100CB200508C4F7BFF7A1179171206A4200B22E584 +:100CC20031B44103E4F541E531B442037541017E9B +:100CD200007F037D007B007A007931120616E4F56D +:020CE2003D22B1 +:10000E00538E7F5389F0758A18758CFCC28DD28CF5 +:05001E00D2A9D2AF22BF +:03000B00020B45A0 +:100B4500C0E0C0F0C083C082C0D075D000C000C076 +:100B550001C002C003C004C005C006C0070543E5C7 +:100B65004370020542FFAE42BE0309BFE806754267 +:100B750000754300053EE53E64087002F53E300B06 +:100B8500110526E5266464700EF526A20AB3920ABD +:100B95008005752600C20A7434253EF8E6FD7427E3 +:100BA500253EF8E6FBAF3E120F3C7444253EF8E6C1 +:100BB500FDAF3E120ECBD007D006D005D004D00332 +:100BC500D002D001D000D0D0D082D083D0F0D0E0F8 +:010BD50032ED +:030023000210B117 +:1010B100C0E0C0D075D000C00030980B7431253D20 +:0E10C100F8A699053DC298D000D0D0D0E032FC +:0E11840000007F237E337DB6DDFEDEFCDFFA49 +:01119200223A +:100F05001210ED12000E121158120E9012118412C9 +:100F15000E90E4FBFA7920784112002612020A8E1F +:100F25002F8F30121184120E4B120D5E120AB11260 +:070F35000C62120DB780EF02 +:100E20000168000169FF016A00016BFF016C0001AC +:020E30006DFF54 +:100ECB00ED600FA8077401088002C333D8FC426899 +:100EDB00800EA8077401088002C333D8FCF4526853 +:100EEB00E56865696013E568F4F580E5A0541F4477 +:090EFB0080F5A053A01F85686971 +:010F040022CA +:10106B00300005436A408003536ABFE56A656B60D5 +:10107B0011856A80E5A0541F44A0F5A053A01F85DD +:02108B006A6B8E +:01108D002240 +:10108E00300005436C108003536CEFE56C656D60AA +:10109E0011856C80E5A0541F44A0F5A053A01F85B8 +:0210AE006C6D67 +:0110B000221D +:100E32000C08C0F9A4B0999282F88090FFC10814FE +:080E42000102040810204080A9 +:100F3C007580FFE5A0541F44E0F5A074142FF8E66B +:100F4C00F580E5A0541F44C0F5A053A01F74082DD4 +:100F5C00F8E6F580EB600353807FE5A0541F44E076 +:060F6C00F5A053A01F22B6 +:100CE400E4FFC2A9C2C4D2C2D2B5D2B420B3027F37 +:100CF4000420B2027F0520B1027F0620B0027F07E4 +:100D0400D2C4C2C2D2B5D2B420B3027F0820B20288 +:100D14007F0920B1027F0A20B0027F0BD2C4D2C265 +:100D2400C2B5D2B420B3027F0C20B2027F0D20B131 +:100D3400027F0E20B0027F0FD2C4D2C2D2B5C2B499 +:100D440020B3027F1020B2027F1120B1027F122053 +:090D5400B0027F13D2A975B0FFB3 +:010D5D002273 +:1010ED007580FFE5A0541F4480F5A053A01FE4F5C3 +:0D10FD0080E5A0541F44A0F5A053A01F22C1 +:10115800759850438E01438E0475D7C775D6FE43E4 +:071168008E10D2ACD2AF22C1 +:080003008F993099FDC299228A +:04112600D2A07F05CF +:10112A00000000000000000000000000000000AE07 +:06113A00071FEE70EB221E +:0F119300D2A1121126C2A17F0512112AC2A022D9 +:0C11A200C2A1121126D2A17F0502112A61 +:020F7200AD07C9 +:100F7400E4FCECC39408748094805024C2A07F05E0 +:100F840012112AED30E704D2A18002C2A17F05121A +:100F9400112AD2A0ED25E0FD7F0512112A0C80D282 +:020FA400C2A0E9 +:010FA6002228 +:10101F00E4FCECC39408748094805017121126EDF1 +:10102F0025E0FD30A103430501C2A07F0512112A5F +:05103F000C80DFAF058D +:011044002289 +:03116F00120F72EA +:10117200121126A2A1E433FDC2A07F0512112AAFEB +:011182000567 +:011183002249 +:10114000C2A0EF24FF92A17F0512112A121126C21C +:08115000A0D2A17F0502112AC3 +:020FA700AB0796 +:100FA9001211937F9012116FAF0312116F121193E7 +:100FB9007F91120F7212117212101FAD077F011269 +:070FC90011401211A2AF0557 +:010FD00022FE +:0611AE0000007F09DFFED6 +:0111B4002218 +:0410CF007F057E001B +:1010D300EF1FAA0670011E4A600FE4FDEDC3940CD6 +:0910E3007480948050EA0D80F342 +:0110EC0022E1 +:020FD100A9076E +:100FD300E4FBEBC39408748094805012C294E91329 +:100FE30092941210CFD294E9C313F90B80E47F05D6 +:050FF3007E000210D396 +:10104500E4FBEBC39408748094805017C294ECC3FE +:1010550013FCD2941211AE3094034304801210CFC6 +:051065000B80DFAF0469 +:01106A002263 +:100FF800C200D2947F0C7E001210D3C2947F507E20 +:10100800001210D3D2947F0A7E001210D3A29492B9 +:06101800001210CFA2003F +:01101E0022AF +:100E9000120FF87FCC120FD17F44120FD17FC87E82 +:100EA000001210D3120FF87FCC120FD17FBE120F99 +:100EB000D1121045A907121045EFAD01FCEC12014B +:0B0EC000D1E4FBFA7980783D020026A7 +:10002600EC4D6011E8497017ED33EC3304600DE4D4 +:10003600FCFFFEFD22E933E8330470F80202761273 +:10004600024158046009E4CC248150062850090274 +:10005600028028400302027DC0E0EB4A7044B9806A +:1000660006D0E0FB02026CEF4E701CBD8008EBFF71 +:10007600EAFEE9FD80EBE98DF0A4FEE5F002010F52 +:10008600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89B5 +:10009600F0A42EFFE435F0CD89F0A42DFEE435F072 +:1000A6008067EF4E7005BD80D780C3EF8BF0A4ACA0 +:1000B600F0EE8BF0A42CFCE435F0F8EF8AF0A42CDB +:1000C600E5F038FCE433CB8DF0A42CFCE5F03BF8EE +:1000D600EE8AF0A42CFCE5F038F8E433CF89F0A4DE +:1000E6002CFCE5F038CF3400CE89F0A42FFFE5F0E4 +:1000F6003EFEE433C98DF0A42EFEE5F039CD8AF03C +:10010600A42FFFE5F03EFEE43DFD33D0E0FB5007B3 +:100116000BBB000F020280EC2CFCEF33FFEE33FE2C +:06012600ED33FD0202585A +:10012C00020280EC5D046005E8590470030202765B +:10013C00120241580460F6EC4860F2EC7004FDFECB +:10014C00FF22C860DB2481C85009C39860025006A6 +:10015C0002027D9850CAF582E9294B4A7005AB82A0 +:10016C0002026C75F0007C1A7880C3EF9BEE9AED5E +:10017C0099400DC3EF9BFFEE9AFEED99FDE842F01E +:10018C00DC23ACF0D0E0FFD0E0FED0E0FDAB822071 +:10019C00E7101BEB60BAEC2CFCEF33FFEE33FEEDFB +:1001AC0033FD020258E803F830E705C0F075F000A3 +:1001BC00EF2FFFEE33FEED33FD40B830E7C280AADF +:1001CC0075F020800E75F010800575F0087D007EAE +:1001DC00007F003392D530D5031205D2EC3340109A +:1001EC00EF33FFEE33FEED33FDEC33FCD5F0ED22B7 +:0E01FC00E5F0247EA2D513CC92E7CDCEFF22F3 +:10020A00EDD2E7CD33EC3392D524814006E4FFFEEC +:10021A00FDFC22FCE4CFCECDCC24E0501174FF804B +:10022A00EDC3CC13CCCD13CDCE13CECF13CF0470E8 +:07023A00F030D5DE0205D211 +:10064200E563244FF8E6056322784C300702784FC1 +:10065200E475F0011205E00205252000EB7F2ED2A1 +:10066200008018EF540F2490D43440D4FF30040B90 +:10067200EF24BFB41A0050032461FFE56460021541 +:10068200640567E5677002056630070D784CE4750E +:10069200F0011205E0EF02056B0200037403D207BA +:1006A2008003E4C207F5638B4C8A4D894EE4F564FE +:1006B200F566F567E56460077F2012067D80F575B3 +:1006C20065FFC201C200C202C203C205C206C2085D +:1006D20012064BFF700D3007057F0012068EAF67C2 +:1006E200AE6622B4255FC2D5C20412064BFF24D0E7 +:1006F200B40A00501A75F00A786430D50508B6FFBE +:100702000106C6A426F620D5047002D20380D9249D +:10071200CFB41A00EF5004C2E5D20402097BD20121 +:1007220080C6D20080C0D20280BCD2D580BAD205A7 +:1007320080B47F2012067D2002077401B564004058 +:10074200F1120642FF12067D0206B6D208D20680D8 +:1007520095120642FB120642FA120642F94A4B7001 +:100762000679727A0A7BFF20022EE564602A7E00F7 +:100772008E8275830012053E60060EEE656570F08E +:10078200C2D5EBC0E0EAC0E0E9C0E0EE1209DBD07E +:10079200E0F9D0E0FAD0E0FB120525FF60AAEBC039 +:1007A200E0EAC0E0E9C0E012067DD0E02401F9D021 +:1007B200E03400FAD0E0FBE5650460DCD565D98061 +:1007C20087D20280A21209BE60F7E56570010412A9 +:1007D200028BA965600DE565600914F565120A656D +:1007E200EF60F3EA30E702F404C3995077EAF425A4 +:1007F200650430E701E404F565800D1209BE60C1AD +:10080200EA0565256512028BEA7862F630E701E4B3 +:10081200256504D56504200501141209DBE4C0E056 +:10082200120A657862E6601320E70714F61206657D +:10083200802204F6D0E014C0E07F00120665E56570 +:10084200600712065C1565800B30050312065CD04A +:10085200E00206B6D0E00480C51209BE60A0E565DC +:100862000412028B7862EAF6E56520050260010453 +:0508720024041209DB63 +:1008770074FF04C0E0120A65120665E565200502EB +:10088700600312065CD0E0B565E87F4512066F7815 +:1008970062E67F2B30E7047F2DF404C0E012067D6B +:1008A700D0E075F00A84C0F0120666D0E012066642 +:1008B7000206B6791080027908C206C2088008D2FB +:1008C700D5790A8004790AC2D5E565047002F56511 +:1008D700E4FAFDFEFF120642FC7B08200113120614 +:1008E70042FD7B1030000A120642FE120642FF7BD1 +:1008F70020EC3382D592D55013C3E43000069FFF16 +:10090700E49EFEE42001039DFDE49CFCE4CBF8C2D9 +:1009170001EC700CCFCECDCCE824F8F870F380173B +:10092700C3EF33FFEE33FEED33FDEC33FCEB33FB6C +:10093700994002FB0FD8E9EB300105F8D0E0C44835 +:10094700B201C0E00AEC4D4E4F78207B0070C2EA3E +:10095700B5650040BCC0E01209DDD0F0D0E0200151 +:1009670004C4C0E0C4B201C0F0120666D0F0D5F0EE +:10097700EB0206B61205F007535308BA5807244C82 +:1009870007204208BE4F08C64408C649073943082E +:10099700CC5507FD46085B4507C7470A925007280D +:1009A7002D072C2E074F2B073023074D200A7B2AB4 +:1009B70006E84800000747E565B4FF0375650612BA +:1009C7000642FC120642FD120642FE120642FF785C +:1009D7005B0202BA790AA2D5200314300509B910BF +:1009E700020404B9080104A2D5200602500104201C +:1009F70002689202B564005034C0E07F20300319CA +:100A07007F30A20272067205500F120A34C202C268 +:100A170006C205C2087F30800F300503E9C0E01227 +:100A2700067D300503D0E0F9D0E0B564CC3005177A +:100A37007F30B9100C12067D7F583004077F78800D +:100A470003B9080312067D3002057F2D02067D7F5C +:100A5700202008F87F2B2006F322920280CF7F0008 +:100A6700B407005005245BF8E6FF22286E756C6C0E +:100A77002900D2011206423001F8C201786430D54C +:100A87000108F60206E82D5043495812064224038E +:100A9700B405004001E4900A8D9312066E743A1271 +:0A0AA700066ED2037564040208BA5B +:10024100E9D2E7C933E833F892D5EDD2E7CD33EC03 +:0702510033FC5002B2D5227C +:10025800EC30E7100FBF000C0EBE00080DBD000407 +:100268000BEB6014A2D5EB13FCED92E7FD2274FFB3 +:10027800FCFDFEFF22E480F8A2D574FF13FC7D800C +:03028800E480EF20 +:10028B00F920E72824F950037907E4F42402FB183A +:10029B00DBFDE624FB5014E9600DE4F618E604F6EA +:0F02AB00B40A08E4F6D9F57401F60A22C2D52286 +:1002BA00ED33EC3392D5FA602AB4FF33EDC2E77B13 +:1002CA00FF60067A0279DFE4227A0279E820D5040F +:1002DA007A0279E3224E614E002B494E46002D499F +:1002EA004E4600E47A08F608DAFC7B00740722E836 +:1002FA00C0E0ECC0E0EDC0E0EEC0E0EFC0E0EA75BF +:10030A00F010A4CAABF075F04DA42BFBE435F0FC59 +:10031A00EA2410FAEB34C5FBEC34D9FCEDC2E7FF52 +:10032A0075F056A4F42411C5F0F434C58FF0A42A4C +:10033A00E5F03BE43CF620E7141204E5D0E0FFD0F8 +:10034A00E0FED0E0FDD0E0FC12012F8014F404128C +:10035A0004E5D0E0FFD0E0FED0E0FDD0E0FC1200E2 +:10036A0026D0E0F8E6FAEDD2E7CD33EC332482FB6F +:10037A00E4C3CF33CFCE33CECD33CD33DBF37B07DC +:10038A0075F00A846004F6081B0AE5F0F6088FF097 +:10039A00740AA4FFACF08EF0740AA42CFEACF050E0 +:1003AA00010C8DF0740AA42CFDE435F0F608DBDEAE +:0303BA00740722A3 +:1003BD00020276E86480F8E933E83360110460F0F6 +:1003CD00ED33EC337009E8FCE9FDEAFEEBFF2204A6 +:1003DD0060DED3EB9FEA9EE99DE8C2E78CF0C2F7A1 +:1003ED0095F0400CE8CCF8E9CDF9EACEFAEBCFFB6D +:1003FD0012024185D0F05804700320D5B3E8047083 +:10040D00075002B2D502028092D5EC0460F7E4CC1D +:10041D00C0E0C398F8603B94186008400DD0E0FB35 +:10042D00020258E4FBFAC9FC8028E830E406E4C96E +:10043D00FBE4CAFCE830E305E4C9CACBFCE8540789 +:10044D006010F8C3E913F9EA13FAEB13FBEC13FC94 +:10045D00D8F130F52FC3E49CFCEF9BFFEE9AFEED37 +:10046D0099FDD0E0FBEF4E4D4C701222DB030202E2 +:10047D007DEC2CFCEF33FFEE33FEED33FDED30E77D +:10048D00EB020258EF2BFFEE3AFEED39FDD0E0FB0B +:10049D0050130BBB0003020280ED13FDEE13FEEFB4 +:0804AD0013FFEC13FC020258DE +:1004B5003F8000004120000042C80000447A00004F +:1004C500461C400047C35000497424004B189680D1 +:1004D5004CBEBC205A0E1BCA6753C21C749DC5AEC8 +:1004E500FB60065407601C2323120513EB54386088 +:1004F500091204FF12050E120026ECF8EDF9EEFACA +:10050500EFCB22EB12050E80F1543803241C900426 +:10051500B5FE93FC0EEE93FD0EEE930ECE93FF22E9 +:03000000020BD61A +:0C0BD600787FE4F6D8FD75816D020C1DDF +:10052500BB010689828A83E0225002E722BBFE02D4 +:09053500E32289828A83E4932207 +:10053E00BB010CE58229F582E5833AF583E0225072 +:10054E0006E92582F8E622BBFE06E92582F8E222BC +:0D055E00E58229F582E5833AF583E49322D6 +:10056B00BB010689828A83F0225002F722BBFE016F +:02057B00F32269 +:10057D00BC000BBE0029EF8DF084FFADF022E4CC62 +:10058D00F875F008EF2FFFEE33FEEC33FCEE9DEC2B +:10059D00984005FCEE9DFE0FD5F0E9E4CEFD22ED71 +:1005AD00F8F5F0EE8420D21CFEADF075F008EF2FBB +:1005BD00FFED33FD4007985006D5F0F222C398FDAC +:0505CD000FD5F0EA2249 +:0E05D200C3E49FFFE49EFEE49DFDE49CFC223A +:1005E000FAE6FB0808E6F925F0F618E6CA3AF6221C +:1005F000D083D082F8E4937012740193700DA3A39A +:1006000093F8740193F5828883E4737402936860AD +:06061000EFA3A3A380DFAD +:10061600EF4E6012EF60010EEDBB010B89828A83FB +:10062600F0A3DFFCDEFA2289F05007F709DFFCA908 +:0C063600F022BBFEFCF309DFFCA9F0225F +:100BE200020F05E493A3F8E493A34003F68001F215 +:100BF20008DFF48029E493A3F85407240CC8C33314 +:100C0200C4540F4420C8834004F456800146F6DFE2 +:100C1200E4800B0102040810204080900E02E47E62 +:100C2200019360BCA3FF543F30E509541FFEE493D7 +:100C3200A360010ECF54C025E060A840B8E493A39E +:100C4200FAE493A3F8E493A3C8C582C8CAC583CAC9 +:100C5200F0A3C8C582C8CAC583CADFE9DEE780BE81 +:010E4A0000A7 +:00000001FF diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan.lnp b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan.lnp new file mode 100644 index 0000000..f1ef7c9 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/Objects/zuolan.lnp @@ -0,0 +1,10 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\Uart.obj", +".\Objects\iic.obj", +".\Objects\onewire.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/main.c b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/main.c new file mode 100644 index 0000000..01fb75b --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/main.c @@ -0,0 +1,205 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Buf[8] = {10 , 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ڷ */ +uchar Uart_Slow_Down; +uchar Uart_Buf[3]; // ڽյ +uchar Uart_Rx_Index; // ڽյݵָ + +/* ʱ䷽ */ +uint time_all_1s; +uchar time_100ms; + +/* */ +uchar Seg_show_mode; // 0 ¶ʾ 1 ѹʾ + +/* */ +uint T_value_10x; // 10¶ֵ +uint V_value_100x; // 100ѹֵ + +/* ж */ +bit Data_send_flag; // жǷӦ÷ +bit Lock_uart_change; // ޸ҳ湦Ƿ +bit Led_blink_flag; // ˸־ + +/* ݴ */ +void Data_Proc() +{ + if (time_all_1s % 100 == 0) + { + // ADȡ + V_value_100x = (float)Ad_Read(0x03) / 51.0 * 100; + } + if (time_all_1s % 500 == 0) + { + // ¶ȶȡ + T_value_10x = rd_temperature() * 10; + } +} +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (time_all_1s % 10) + return; + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 12) + Data_send_flag = 1; + if (Key_Down == 4) + Lock_uart_change = 1; + if (Lock_uart_change && Key_Down == 5) + Lock_uart_change = 0; +} +/* ܴ */ +void Seg_Proc() +{ + if (time_all_1s % 20) + return; + Seg_Buf[0] = 11; // U + Seg_Buf[1] = Seg_show_mode + 1; + Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + if (Seg_show_mode == 0) + { + Seg_Point[5] = 0; + Seg_Point[6] = 1; + Seg_Buf[5] = T_value_10x / 100 % 10; + Seg_Buf[6] = T_value_10x / 10 % 10; + Seg_Buf[7] = T_value_10x % 10; + } + else + { + Seg_Point[5] = 1; + Seg_Point[6] = 0; + Seg_Buf[5] = V_value_100x / 100 % 10; + Seg_Buf[6] = V_value_100x / 10 % 10; + Seg_Buf[7] = V_value_100x % 10; + } +} + +/* LED */ +void Led_Proc() +{ + ucLed[0] = (Seg_show_mode == 0); + ucLed[1] = (Seg_show_mode == 1); + ucLed[2] = Led_blink_flag; + Relay(T_value_10x >= 280); + Beep(V_value_100x > 360); +} + +/* ڴ */ +void Uart_Proc() +{ + if (time_all_1s % 200) + return; + if (Data_send_flag) + { + Data_send_flag = 0; + if (Seg_show_mode == 0) + printf("TEMP:%0.1f", (float)T_value_10x / 10.0); + else + printf("Voltage:%0.2fV", (float)V_value_100x / 100.0); + } + if (Lock_uart_change == 0) + { + // δ + if (Uart_Buf[0] == 'A') + Seg_show_mode = 0; + if (Uart_Buf[0] == 'B') + Seg_show_mode = 1; + memset(Uart_Buf, 0, 3); + Uart_Rx_Index = 0; + } +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++time_all_1s == 1000) + time_all_1s = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (Lock_uart_change) + { + if (++time_100ms == 100) + { + time_100ms = 0; + Led_blink_flag ^= 1; + } + } + else + { + time_100ms = 0; + Led_blink_flag = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +/* жϷ */ +void Uart_ISR(void) interrupt 4 +{ + if (RI == 1) // ڽյ + { + Uart_Buf[Uart_Rx_Index] = SBUF; + Uart_Rx_Index++; + RI = 0; + } +} +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} +void main() +{ + System_Init(); + Timer0_Init(); + Uart1_Init(); + rd_temperature(); + Delay750ms(); + T_value_10x = rd_temperature() * 10; + Delay750ms(); + while (1) + { + Key_Proc(); + Data_Proc(); + Seg_Proc(); + Uart_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/main.h b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/main.h new file mode 100644 index 0000000..aee7556 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/main.h @@ -0,0 +1,13 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "iic.h" +#include "onewire.h" +#include "Uart.h" +#include "intrins.h" +#include "stdio.h" +#include "Init.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/zuolan.uvgui.haze b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/zuolan.uvgui.haze new file mode 100644 index 0000000..4481d6e --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/zuolan.uvgui.haze @@ -0,0 +1,2628 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 578 544 + + + 204 + Performance Analyzer + 1122 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 2 + 3 + + -32000 + -32024 + + + -1 + -1 + + + 71 + 503 + 1543 + 559 + + + + 0 + + 446 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000400000002000000010000002D433A5C55736572735C68617A655C4465736B746F705C34543134C4A3C4E2325C4472697665725C556172742E680000000006556172742E6800000000BCA8E100FFFFFFFF25443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000F0A0A100FFFFFFFF2B433A5C55736572735C68617A655C4465736B746F705C34543134C4A3C4E2325C557365725C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF2D433A5C55736572735C68617A655C4465736B746F705C34543134C4A3C4E2325C4472697665725C556172742E630000000006556172742E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E000000000600002D020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100007E00000070040000EB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000001602000000060000E5020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000EB000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000CF010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000FE010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100002D020000000000004F00000090010000FE0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000BF01000070040000400200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FE010000000600000202000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000310200000006000014030000000000000202000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2026 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000250319600000000000000030002503103736275027362000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000000060000B7000000 + + + 16 + 940100007E00000000060000E6000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E3010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 220000005100000005010000F4010000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD050000CC020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD05000063020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD05000063020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD05000063020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD050000CC020000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1936 + 1936 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD050000CC020000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD05000063020000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD05000063020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD05000063020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD05000063020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD05000063020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 220000005100000005010000F4010000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 220000005100000005010000F4010000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000000002000000030000E5020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 940100006300000000060000B7000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD05000063020000 + + + 16 + 22000000510000005A020000B9000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 22000000510000005A020000B9000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E3010000 + + + 16 + 220000005100000005010000F4010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 22000000510000005A020000B9000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 220000005100000005010000F4010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD05000063020000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000017020000FD05000063020000 + + + 16 + 2200000051000000B2010000E1010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2618 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF94010000B700000000060000BB000000010000000100001004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000940100007E00000000060000E6000000940100004F00000000060000B70000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008C010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000BB010000E00200004F000000700400008C0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000FC010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E0000009001000094020000000000004F00000090010000FC0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000FC0100000006000000020000010000000100001004000000010000005BFEFFFF1700000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000100000004030000980200000006000014030000040300000002000000060000E502000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFF000300000002000004030000E502000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000008C0100007004000090010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000000000000000000BF0100007004000027020000000000009001000070040000F80100000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2026 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000250319600000000000000030002503103736275027362000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000004002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 2 + + ..\Driver\Uart.h + 20 + 1 + 1 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 4 + 58 + 195 + 1 + + 0 + + + ..\Driver\Uart.c + 0 + 1 + 1 + 1 + + 0 + + + + +
diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/zuolan.uvopt b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/zuolan.uvopt new file mode 100644 index 0000000..93657e8 --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/zuolan.uvopt @@ -0,0 +1,295 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + + + + + + + + + + + BIN\STCMON51.DLL + + + + 0 + STCMON51 + -S3 -B115200 -O0 -U0 + + + 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 + VDM51 + + + + + + + 0 + 1 + Uart_Buf,0x10 + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 1 + 0 + 0 + 0 + ..\Driver\Uart.c + Uart.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + +
diff --git a/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/zuolan.uvproj b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/zuolan.uvproj new file mode 100644 index 0000000..e1d856b --- /dev/null +++ b/题目/模拟题/4T14届模拟2_左岚85/4T14模拟2/User/zuolan.uvproj @@ -0,0 +1,415 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 10 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + "" () + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + Uart.c + 1 + ..\Driver\Uart.c + + + iic.c + 1 + ..\Driver\iic.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + + + + + +
diff --git a/题目/模拟题/4T14届模拟_左岚83.3.zip b/题目/模拟题/4T14届模拟_左岚83.3.zip new file mode 100644 index 0000000..8a80993 Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3.zip differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1.png b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1.png new file mode 100644 index 0000000..b0e219e Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1.png differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/.vscode/settings.json b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Init.c b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Init.h b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Key.c b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Key.h b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Led.c b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Led.c new file mode 100644 index 0000000..4749a48 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Led.c @@ -0,0 +1,21 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Led.h b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Led.h new file mode 100644 index 0000000..e50c9a7 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Led.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Seg.c b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Seg.c new file mode 100644 index 0000000..3fb64d6 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 U +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xc1}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Seg.h b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Uart.c b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Uart.c new file mode 100644 index 0000000..f008d65 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Uart.c @@ -0,0 +1,20 @@ +#include "Uart.h" +void Uart1_Init(void) // 9600bps@12MHz +{ + SCON = 0x50; // 8λ,ɱ䲨 + AUXR |= 0x01; // 1ѡʱ2Ϊʷ + AUXR |= 0x04; // ʱʱ1Tģʽ + T2L = 0xC7; // öʱʼֵ + T2H = 0xFE; // öʱʼֵ + AUXR |= 0x10; // ʱ2ʼʱ + ES = 1; // 򿪴ж + EA = 1; // ж +} +extern char putchar(char ch) +{ + SBUF = ch; // chдSBUF + while (TI == 0) + ; // ȴ + TI = 0; // ɱ־ + return ch; +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Uart.h b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Uart.h new file mode 100644 index 0000000..0620fac --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Uart.h @@ -0,0 +1,3 @@ +#include "STC15F2K60S2.H" +#include "stdio.h" +void Uart1_Init(); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Ultrasonic.c b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Ultrasonic.c new file mode 100644 index 0000000..33abcc4 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Ultrasonic.c @@ -0,0 +1,56 @@ +#include "Ultrasonic.h" +#include "intrins.h" + +sbit Tx = P1 ^ 0; +sbit Rx = P1 ^ 1; +void Delay12us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 33; // 38 + while (--i) + ; +} + +void Ut_Wave_Init() +{ + unsigned char i; + // 840kHzķ + // f=40kHz->T=1/f=0.000025s=25us + // 12.5us 1 12.5us 0 + for (i = 0; i < 8; i++) + { + Tx = 1; + Delay12us(); + Tx = 0; + Delay12us(); + } +} + +unsigned char Ut_Wave_Data() +{ + unsigned int time; + CH = CL = 0; // PCAĴֵ + CCON = 0; // ʼPCAƼĴ/PCAʱֹͣ/CF/ + + EA = 0; // رж + Ut_Wave_Init(); // ͳź + EA = 1; // ж + CR = 1; // PCAʼ + while (Rx && !CF) // TF1 + ; // ȴ + CR = 0; // PCAֹͣ + if (CF == 0) + { + time = CH << 8 | CL; // λΪ + // L=V*T/2 + return (time * 0.017); // صĵλcm + } + else + { + CF = 0; + return 0; + } +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Ultrasonic.h b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Ultrasonic.h new file mode 100644 index 0000000..bea5589 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/Driver/Ultrasonic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.h" +unsigned char Ut_Wave_Data(); \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Init.lst b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Init.lst new file mode 100644 index 0000000..d215dfb --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 04/06/2024 10:33:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Key.lst b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Key.lst new file mode 100644 index 0000000..5afcf00 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 04/06/2024 10:33:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 04/06/2024 10:33:43 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Led.lst b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Led.lst new file mode 100644 index 0000000..a3a050d --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Led.lst @@ -0,0 +1,45 @@ +C51 COMPILER V9.59.0.0 LED 04/06/2024 10:33:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 58 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 2 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Seg.lst b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Seg.lst new file mode 100644 index 0000000..0355527 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 04/06/2024 10:33:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 U + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xc1}; + 4 // λѡ + 5 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 20 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Uart.lst b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Uart.lst new file mode 100644 index 0000000..5292d2d --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 04/06/2024 10:33:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Ultrasonic.lst b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..9f04677 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/Ultrasonic.lst @@ -0,0 +1,82 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 04/06/2024 10:33:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; // 38 + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 CH = CL = 0; // PCAĴֵ + 36 1 CCON = 0; // ʼPCAƼĴ/PCAʱֹͣ/CF/ + 37 1 + 38 1 EA = 0; // رж + 39 1 Ut_Wave_Init(); // ͳź + 40 1 EA = 1; // ж + 41 1 CR = 1; // PCAʼ + 42 1 while (Rx && !CF) // TF1 + 43 1 ; // ȴ + 44 1 CR = 0; // PCAֹͣ + 45 1 if (CF == 0) + 46 1 { + 47 2 time = CH << 8 | CL; // λΪ + 48 2 // L=V*T/2 + 49 2 return (time * 0.017); // صĵλcm + 50 2 } + 51 1 else + 52 1 { + 53 2 CF = 0; + 54 2 return 0; + C51 COMPILER V9.59.0.0 ULTRASONIC 04/06/2024 10:33:43 PAGE 2 + + 55 2 } + 56 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 93 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/ds1302.lst b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/iic.lst b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/iic.lst new file mode 100644 index 0000000..27e3624 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/main.lst b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/main.lst new file mode 100644 index 0000000..d6476c5 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/main.lst @@ -0,0 +1,194 @@ +C51 COMPILER V9.59.0.0 MAIN 04/06/2024 10:33:42 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ̷ */ + 12 uchar Key_Slow_Down; + 13 + 14 /* ʱ䷽ */ + 15 uint time_all_1s; + 16 uchar time_200ms; + 17 /* */ + 18 uchar Dis_value; + 19 uchar Dis_para = 30; + 20 /* ʾ */ + 21 uchar Seg_show_mode; // 0 ʾ 1 ʾ + 22 + 23 /* ж */ + 24 bit Send_data_flag; + 25 bit Wring_flag; + 26 bit Led_blink; + 27 /* ݴ */ + 28 void Data_Proc() + 29 { + 30 1 if (time_all_1s % 100 == 0) + 31 1 { + 32 2 // ȡ + 33 2 Dis_value = Ut_Wave_Data(); + 34 2 if (Dis_value > Dis_para) + 35 2 Wring_flag = 1; + 36 2 else + 37 2 Wring_flag = 0; + 38 2 } + 39 1 } + 40 /* ̴ */ + 41 void Key_Proc() + 42 { + 43 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 44 1 if (time_all_1s % 10) + 45 1 return; + 46 1 Key_Val = Key_Read(); + 47 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 48 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 49 1 Key_Old = Key_Val; + 50 1 if (Key_Down == 4) + 51 1 Seg_show_mode = (++Seg_show_mode) % 2; + 52 1 if (Seg_show_mode == 0) + 53 1 if (Key_Down == 8) + 54 1 Dis_para = Dis_value; + C51 COMPILER V9.59.0.0 MAIN 04/06/2024 10:33:42 PAGE 2 + + 55 1 if (Seg_show_mode == 1) + 56 1 { + 57 2 if (Key_Down == 12) + 58 2 Dis_para = (Dis_para >= 245) ? 255 + 59 2 : Dis_para + 10; + 60 2 else if (Key_Down == 16) + 61 2 Dis_para = (Dis_para <= 10) ? 0 + 62 2 : Dis_para - 10; + 63 2 } + 64 1 if (Key_Down == 9) + 65 1 Send_data_flag = 1; + 66 1 } + 67 /* ܴ */ + 68 void Seg_Proc() + 69 { + 70 1 uchar i; + 71 1 if (time_all_1s % 100) + 72 1 return; + 73 1 Seg_Buf[0] = 11; // U + 74 1 Seg_Buf[1] = Seg_show_mode + 1; + 75 1 Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 76 1 Seg_Buf[5] = (Seg_show_mode == 0) ? Dis_value / 100 % 10 + 77 1 : Dis_para / 100 % 10; + 78 1 Seg_Buf[6] = (Seg_show_mode == 0) ? Dis_value / 10 % 10 + 79 1 : Dis_para / 10 % 10; + 80 1 Seg_Buf[7] = (Seg_show_mode == 0) ? Dis_value % 10 + 81 1 : Dis_para % 10; + 82 1 i = 5; + 83 1 while (i < 7) + 84 1 { + 85 2 if (Seg_Buf[i] == 0 && Seg_Buf[i - 1] == 10) + 86 2 Seg_Buf[i] = 10; + 87 2 else + 88 2 break; + 89 2 i++; + 90 2 } + 91 1 } + 92 + 93 /* LED */ + 94 void Led_Proc() + 95 { + 96 1 ucLed[0] = (Seg_show_mode == 0); + 97 1 ucLed[1] = (Seg_show_mode == 1); + 98 1 ucLed[2] = Led_blink; + 99 1 } + 100 + 101 /* ڴ */ + 102 void Uart_Proc() + 103 { + 104 1 if (time_all_1s % 200) + 105 1 return; + 106 1 if (Send_data_flag) + 107 1 { + 108 2 Send_data_flag = 0; + 109 2 printf("Distance:%bucm", Dis_value); + 110 2 } + 111 1 } + 112 + 113 /* ʱ0жϳʼ */ + 114 void Timer0_Init(void) // 1@12.000MHz + 115 { + 116 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + C51 COMPILER V9.59.0.0 MAIN 04/06/2024 10:33:42 PAGE 3 + + 117 1 TMOD &= 0xF0; // öʱģʽ + 118 1 TL0 = 0x18; // öʱʼֵ + 119 1 TH0 = 0xFC; // öʱʼֵ + 120 1 TF0 = 0; // TF0־ + 121 1 TR0 = 1; // ʱ0ʼʱ + 122 1 ET0 = 1; + 123 1 EA = 1; + 124 1 } + 125 + 126 /* ʱ0жϺ */ + 127 void Timer0_ISR(void) interrupt 1 + 128 { + 129 1 if (++time_all_1s == 1000) + 130 1 time_all_1s = 0; + 131 1 if (++Seg_Pos == 8) + 132 1 Seg_Pos = 0; + 133 1 if (Wring_flag) + 134 1 { + 135 2 if (++time_200ms == 200) + 136 2 { + 137 3 time_200ms = 0; + 138 3 Led_blink ^= 1; + 139 3 } + 140 2 } + 141 1 else + 142 1 { + 143 2 time_200ms = 0; + 144 2 Led_blink = 0; + 145 2 } + 146 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 147 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 148 1 } + 149 void Uart1_Isr(void) interrupt 4 + 150 { + 151 1 } + 152 + 153 void main() + 154 { + 155 1 System_Init(); + 156 1 Timer0_Init(); + 157 1 Uart1_Init(); + 158 1 while (1) + 159 1 { + 160 2 Key_Proc(); + 161 2 Data_Proc(); + 162 2 Seg_Proc(); + 163 2 Uart_Proc(); + 164 2 Led_Proc(); + 165 2 } + 166 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 579 ---- + CONSTANT SIZE = 15 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 37 ---- + IDATA SIZE = ---- ---- + BIT SIZE = 3 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/onewire.lst b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/onewire.lst new file mode 100644 index 0000000..c7f63e7 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/zuolan.m51 b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/zuolan.m51 new file mode 100644 index 0000000..81399f9 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Listings/zuolan.m51 @@ -0,0 +1,763 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\Uart.obj, .\Objects\Ultrasonic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\Uart.obj (UART) + .\Objects\Ultrasonic.obj (ULTRASONIC) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (PRINTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPROUND) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPCONVERT) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FTNPWR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?PLDIIDATA) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CCASE) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0014H UNIT ?DT?SEG + DATA 001CH 0002H UNIT ?DT?LED + 001EH 0002H *** GAP *** + BIT 0020H.0 0001H.1 UNIT _BIT_GROUP_ + BIT 0021H.1 0000H.3 UNIT ?BI?MAIN + 0021H.4 0000H.4 *** GAP *** + DATA 0022H 0025H UNIT ?DT?MAIN + DATA 0047H 001CH UNIT _DATA_GROUP_ + IDATA 0063H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0008H UNIT ?PR?_PUTCHAR?UART + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 2 + + + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0023H 0003H ABSOLUTE + CODE 0026H 05F0H UNIT ?C?LIB_CODE + CODE 0616H 046FH UNIT ?PR?PRINTF?PRINTF + CODE 0A85H 0095H UNIT ?PR?KEY_PROC?MAIN + CODE 0B1AH 0091H UNIT ?PR?TIMER0_ISR?MAIN + CODE 0BABH 008CH UNIT ?C_C51STARTUP + CODE 0C37H 0087H UNIT ?PR?SEG_PROC?MAIN + CODE 0CBEH 007AH UNIT ?PR?KEY_READ?KEY + CODE 0D38H 0040H UNIT ?C_INITSEG + CODE 0D78H 003CH UNIT ?PR?UT_WAVE_DATA?ULTRASONIC + CODE 0DB4H 003AH UNIT ?PR?_LED_DISP?LED + CODE 0DEEH 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 0E24H 0024H UNIT ?PR?LED_PROC?MAIN + CODE 0E48H 0021H UNIT ?PR?DATA_PROC?MAIN + CODE 0E69H 0021H UNIT ?PR?UART_PROC?MAIN + CODE 0E8AH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0EA7H 001AH UNIT ?PR?MAIN?MAIN + CODE 0EC1H 001AH UNIT ?PR?UT_WAVE_INIT?ULTRASONIC + CODE 0EDBH 0017H UNIT ?PR?UART1_INIT?UART + CODE 0EF2H 000FH UNIT ?CO?MAIN + CODE 0F01H 0007H UNIT ?PR?DELAY12US?ULTRASONIC + CODE 0F08H 0001H UNIT ?PR?UART1_ISR?MAIN + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +----------------------------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?UART1_INIT?UART + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?DATA_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?UART_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?DATA_PROC?MAIN ----- ----- ----- ----- + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 3 + + + +--> ?PR?UT_WAVE_DATA?ULTRASONIC + +?PR?UT_WAVE_DATA?ULTRASONIC ----- ----- ----- ----- + +--> ?PR?UT_WAVE_INIT?ULTRASONIC + +?PR?UT_WAVE_INIT?ULTRASONIC ----- ----- ----- ----- + +--> ?PR?DELAY12US?ULTRASONIC + +?PR?UART_PROC?MAIN ----- ----- ----- ----- + +--> ?CO?MAIN + +--> ?PR?PRINTF?PRINTF + +?PR?PRINTF?PRINTF 0020H.0 0001H.1 0047H 001CH + +--> ?PR?_PUTCHAR?UART + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:0B1AH PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:0021H.1 PUBLIC Send_data_flag + D:0026H PUBLIC time_200ms + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + B:0021H.2 PUBLIC Wring_flag + D:00F8H PUBLIC P7 + B:0021H.3 PUBLIC Led_blink + C:0E24H PUBLIC Led_Proc + D:0027H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:0E69H PUBLIC Uart_Proc + C:0C37H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:002FH PUBLIC Seg_Buf + C:0A85H PUBLIC Key_Proc + D:0037H PUBLIC Dis_value + D:0038H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:0EA7H PUBLIC main + D:0039H PUBLIC Dis_para + C:000EH PUBLIC Timer0_Init + D:003AH PUBLIC Key_Slow_Down + D:003BH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 4 + + + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:003CH PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + D:003DH PUBLIC time_all_1s + B:0088H.4 PUBLIC TR0 + C:0F08H PUBLIC Uart1_Isr + D:003FH PUBLIC ucLed + C:0E48H PUBLIC Data_Proc + D:00D0H PUBLIC PSW + ------- PROC DATA_PROC + C:0E48H LINE# 28 + C:0E48H LINE# 29 + C:0E48H LINE# 30 + C:0E57H LINE# 31 + C:0E57H LINE# 33 + C:0E5CH LINE# 34 + C:0E63H LINE# 35 + C:0E66H LINE# 37 + C:0E68H LINE# 38 + C:0E68H LINE# 39 + ------- ENDPROC DATA_PROC + ------- PROC KEY_PROC + ------- DO + D:0022H SYMBOL Key_Val + D:0023H SYMBOL Key_Down + D:0024H SYMBOL Key_Up + D:0025H SYMBOL Key_Old + ------- ENDDO + C:0A85H LINE# 41 + C:0A85H LINE# 42 + C:0A85H LINE# 44 + C:0A97H LINE# 46 + C:0A9CH LINE# 47 + C:0AA5H LINE# 48 + C:0AABH LINE# 49 + C:0AAEH LINE# 50 + C:0AB7H LINE# 51 + C:0ABFH LINE# 52 + C:0AC6H LINE# 53 + C:0ACCH LINE# 54 + C:0ACFH LINE# 55 + C:0AD5H LINE# 56 + C:0AD5H LINE# 57 + C:0ADDH LINE# 58 + C:0AF5H LINE# 60 + C:0AFBH LINE# 61 + C:0B11H LINE# 63 + C:0B11H LINE# 64 + C:0B17H LINE# 65 + C:0B19H LINE# 66 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:0007H SYMBOL i + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 5 + + + ------- ENDDO + C:0C37H LINE# 68 + C:0C37H LINE# 69 + C:0C37H LINE# 71 + C:0C46H LINE# 73 + C:0C49H LINE# 74 + C:0C4EH LINE# 75 + C:0C57H LINE# 76 + C:0C70H LINE# 78 + C:0C86H LINE# 80 + C:0C98H LINE# 82 + C:0C9AH LINE# 83 + C:0CA4H LINE# 84 + C:0CA4H LINE# 85 + C:0CB4H LINE# 86 + C:0CBAH LINE# 88 + C:0CBAH LINE# 89 + C:0CBBH LINE# 90 + C:0CBDH LINE# 91 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0E24H LINE# 94 + C:0E24H LINE# 95 + C:0E24H LINE# 96 + C:0E33H LINE# 97 + C:0E41H LINE# 98 + C:0E47H LINE# 99 + ------- ENDPROC LED_PROC + ------- PROC UART_PROC + C:0E69H LINE# 102 + C:0E69H LINE# 103 + C:0E69H LINE# 104 + C:0E78H LINE# 106 + C:0E7BH LINE# 107 + C:0E7BH LINE# 108 + C:0E7DH LINE# 109 + C:0E89H LINE# 110 + C:0E89H LINE# 111 + ------- ENDPROC UART_PROC + ------- PROC TIMER0_INIT + C:000EH LINE# 114 + C:000EH LINE# 115 + C:000EH LINE# 116 + C:0011H LINE# 117 + C:0014H LINE# 118 + C:0017H LINE# 119 + C:001AH LINE# 120 + C:001CH LINE# 121 + C:001EH LINE# 122 + C:0020H LINE# 123 + C:0022H LINE# 124 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:0B1AH LINE# 127 + C:0B37H LINE# 129 + C:0B48H LINE# 130 + C:0B4EH LINE# 131 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 6 + + + C:0B56H LINE# 132 + C:0B58H LINE# 133 + C:0B5BH LINE# 134 + C:0B5BH LINE# 135 + C:0B63H LINE# 136 + C:0B63H LINE# 137 + C:0B65H LINE# 138 + C:0B6AH LINE# 139 + C:0B6AH LINE# 140 + C:0B6CH LINE# 142 + C:0B6CH LINE# 143 + C:0B6FH LINE# 144 + C:0B71H LINE# 145 + C:0B71H LINE# 146 + C:0B84H LINE# 147 + C:0B90H LINE# 148 + ------- ENDPROC TIMER0_ISR + ------- PROC UART1_ISR + C:0F08H LINE# 149 + C:0F08H LINE# 151 + ------- ENDPROC UART1_ISR + ------- PROC MAIN + C:0EA7H LINE# 153 + C:0EA7H LINE# 154 + C:0EA7H LINE# 155 + C:0EAAH LINE# 156 + C:0EADH LINE# 157 + C:0EB0H LINE# 158 + C:0EB0H LINE# 159 + C:0EB0H LINE# 160 + C:0EB3H LINE# 161 + C:0EB6H LINE# 162 + C:0EB9H LINE# 163 + C:0EBCH LINE# 164 + C:0EBFH LINE# 165 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0DB4H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 7 + + + D:0005H SYMBOL enable + ------- DO + D:001CH SYMBOL temp + D:001DH SYMBOL temp_old + ------- ENDDO + C:0DB4H LINE# 5 + C:0DB4H LINE# 6 + C:0DB4H LINE# 10 + C:0DB7H LINE# 11 + C:0DC6H LINE# 13 + C:0DD4H LINE# 14 + C:0DDAH LINE# 15 + C:0DDAH LINE# 16 + C:0DDFH LINE# 17 + C:0DE7H LINE# 18 + C:0DEAH LINE# 19 + C:0DEDH LINE# 20 + C:0DEDH LINE# 21 + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0DEEH PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0014H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:0DEEH LINE# 6 + C:0DEEH LINE# 7 + C:0DEEH LINE# 9 + C:0DF1H LINE# 10 + C:0DF9H LINE# 13 + C:0E00H LINE# 14 + C:0E08H LINE# 15 + C:0E0BH LINE# 18 + C:0E12H LINE# 19 + C:0E15H LINE# 20 + C:0E18H LINE# 21 + C:0E20H LINE# 22 + C:0E23H LINE# 23 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 8 + + + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0CBEH PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0CBEH LINE# 2 + C:0CBEH LINE# 3 + C:0CBEH LINE# 4 + C:0CC0H LINE# 5 + C:0CC2H LINE# 6 + C:0CC4H LINE# 7 + C:0CC6H LINE# 8 + C:0CC8H LINE# 9 + C:0CCAH LINE# 10 + C:0CCDH LINE# 11 + C:0CCFH LINE# 12 + C:0CD2H LINE# 13 + C:0CD4H LINE# 14 + C:0CD7H LINE# 15 + C:0CD9H LINE# 16 + C:0CDCH LINE# 17 + C:0CDEH LINE# 18 + C:0CE0H LINE# 19 + C:0CE2H LINE# 20 + C:0CE4H LINE# 21 + C:0CE6H LINE# 22 + C:0CE9H LINE# 23 + C:0CEBH LINE# 24 + C:0CEEH LINE# 25 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 9 + + + C:0CF0H LINE# 26 + C:0CF3H LINE# 27 + C:0CF5H LINE# 28 + C:0CF8H LINE# 29 + C:0CFAH LINE# 30 + C:0CFCH LINE# 31 + C:0CFEH LINE# 32 + C:0D00H LINE# 33 + C:0D02H LINE# 34 + C:0D05H LINE# 35 + C:0D07H LINE# 36 + C:0D0AH LINE# 37 + C:0D0CH LINE# 38 + C:0D0FH LINE# 39 + C:0D11H LINE# 40 + C:0D14H LINE# 41 + C:0D16H LINE# 42 + C:0D18H LINE# 43 + C:0D1AH LINE# 44 + C:0D1CH LINE# 45 + C:0D1EH LINE# 46 + C:0D21H LINE# 47 + C:0D23H LINE# 48 + C:0D26H LINE# 49 + C:0D28H LINE# 50 + C:0D2BH LINE# 51 + C:0D2DH LINE# 52 + C:0D30H LINE# 53 + C:0D32H LINE# 54 + C:0D34H LINE# 55 + C:0D37H LINE# 56 + C:0D37H LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0E8AH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0E8AH LINE# 3 + C:0E8AH LINE# 4 + C:0E8AH LINE# 5 + C:0E8DH LINE# 6 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 10 + + + C:0E95H LINE# 7 + C:0E98H LINE# 9 + C:0E9BH LINE# 10 + C:0EA3H LINE# 11 + C:0EA6H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE UART + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + B:00A8H.4 PUBLIC ES + D:00B8H PUBLIC IP + B:0098H.1 PUBLIC TI + D:00D8H PUBLIC CCON + D:0099H PUBLIC SBUF + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + C:0EDBH PUBLIC Uart1_Init + D:00D6H PUBLIC T2H + D:00D7H PUBLIC T2L + D:00D0H PUBLIC PSW + C:0003H PUBLIC _putchar + ------- PROC UART1_INIT + C:0EDBH LINE# 2 + C:0EDBH LINE# 3 + C:0EDBH LINE# 4 + C:0EDEH LINE# 5 + C:0EE1H LINE# 6 + C:0EE4H LINE# 7 + C:0EE7H LINE# 8 + C:0EEAH LINE# 9 + C:0EEDH LINE# 10 + C:0EEFH LINE# 11 + C:0EF1H LINE# 12 + ------- ENDPROC UART1_INIT + ------- PROC _PUTCHAR + D:0007H SYMBOL ch + C:0003H LINE# 13 + C:0003H LINE# 14 + C:0003H LINE# 15 + C:0005H LINE# 16 + C:0008H LINE# 18 + C:000AH LINE# 19 + C:000AH LINE# 20 + ------- ENDPROC _PUTCHAR + ------- ENDMOD UART + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 11 + + + + ------- MODULE ULTRASONIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + B:00D8H.7 PUBLIC CF + D:00F9H PUBLIC CH + D:00A8H PUBLIC IE + D:00E9H PUBLIC CL + B:00D8H.6 PUBLIC CR + D:00B8H PUBLIC IP + C:0D78H PUBLIC Ut_Wave_Data + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0EC1H PUBLIC Ut_Wave_Init + C:0F01H PUBLIC Delay12us + B:0090H.1 PUBLIC Rx + B:0090H.0 PUBLIC Tx + D:00D0H PUBLIC PSW + ------- PROC DELAY12US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0F01H LINE# 6 + C:0F01H LINE# 7 + C:0F01H LINE# 10 + C:0F02H LINE# 11 + C:0F03H LINE# 12 + C:0F05H LINE# 13 + C:0F07H LINE# 15 + ------- ENDPROC DELAY12US + ------- PROC UT_WAVE_INIT + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0EC1H LINE# 17 + C:0EC1H LINE# 18 + C:0EC1H LINE# 23 + C:0ECDH LINE# 24 + C:0ECDH LINE# 25 + C:0ECFH LINE# 26 + C:0ED2H LINE# 27 + C:0ED4H LINE# 28 + C:0ED7H LINE# 29 + C:0EDAH LINE# 30 + ------- ENDPROC UT_WAVE_INIT + ------- PROC UT_WAVE_DATA + ------- DO + D:0006H SYMBOL time + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 12 + + + ------- ENDDO + C:0D78H LINE# 32 + C:0D78H LINE# 33 + C:0D78H LINE# 35 + C:0D7DH LINE# 36 + C:0D7FH LINE# 38 + C:0D81H LINE# 39 + C:0D84H LINE# 40 + C:0D86H LINE# 41 + C:0D88H LINE# 42 + C:0D8EH LINE# 44 + C:0D90H LINE# 45 + C:0D93H LINE# 46 + C:0D93H LINE# 47 + C:0D9BH LINE# 49 + C:0DAFH LINE# 50 + C:0DAFH LINE# 52 + C:0DAFH LINE# 53 + C:0DB1H LINE# 54 + C:0DB3H LINE# 55 + C:0DB3H LINE# 56 + ------- ENDPROC UT_WAVE_DATA + ------- ENDMOD ULTRASONIC + + ------- MODULE ?C?FPMUL + C:0026H PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:0136H PUBLIC ?C?FCASTC + C:0131H PUBLIC ?C?FCASTI + C:012CH PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:016AH PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE PRINTF + D:0047H PUBLIC ?_PRINTF?BYTE + D:0047H PUBLIC ?_SPRINTF?BYTE + C:0678H PUBLIC _PRINTF + C:0672H PUBLIC _SPRINTF + ------- ENDMOD PRINTF + + ------- MODULE ?C?FPROUND + C:01EBH PUBLIC ?C?FPROUND + ------- ENDMOD ?C?FPROUND + + ------- MODULE ?C?FPCONVERT + C:021AH PUBLIC ?C?FPCONVERT + ------- ENDMOD ?C?FPCONVERT + + ------- MODULE ?C?FPADD + C:0324H PUBLIC ?C?FPADD + C:0320H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/06/2024 10:33:43 PAGE 13 + + + + ------- MODULE ?C?FPDIV + C:0418H PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FTNPWR + C:04E5H PUBLIC ?C?FTNPWR + ------- ENDMOD ?C?FTNPWR + + ------- MODULE ?C?CLDPTR + C:0525H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CLDOPTR + C:053EH PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:056BH PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?UIDIV + C:057DH PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:05D2H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + + ------- MODULE ?C?PLDIIDATA + C:05E0H PUBLIC ?C?PLDIIDATA + ------- ENDMOD ?C?PLDIIDATA + + ------- MODULE ?C?CCASE + C:05F0H PUBLIC ?C?CCASE + ------- ENDMOD ?C?CCASE + +Program Size: data=97.4 xdata=0 code=3849 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/ExtDll.iex b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Init.obj b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Init.obj new file mode 100644 index 0000000..edefbda Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Init.obj differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Key.obj b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Key.obj new file mode 100644 index 0000000..d30c81e Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Key.obj differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Led.obj b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Led.obj new file mode 100644 index 0000000..549d691 Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Led.obj differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Seg.obj b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Seg.obj new file mode 100644 index 0000000..7868ae3 Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Seg.obj differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Uart.obj b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Uart.obj new file mode 100644 index 0000000..04278f4 Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Uart.obj differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Ultrasonic.obj b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..3231b1b Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/Ultrasonic.obj differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/ds1302.obj b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/ds1302.obj differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/iic.obj b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/iic.obj new file mode 100644 index 0000000..88a47fa Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/iic.obj differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/main.obj b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/main.obj new file mode 100644 index 0000000..542953a Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/main.obj differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/onewire.obj b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/onewire.obj new file mode 100644 index 0000000..772b6d9 Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/onewire.obj differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan new file mode 100644 index 0000000..4d97b04 Binary files /dev/null and b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan differ diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan.build_log.htm b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..7e4c5b6 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan.build_log.htm @@ -0,0 +1,42 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: STCMON51.DLL V1, 0, 10, 0 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\4T14ģ1\User\zuolan.uvproj +Project File Date: 03/28/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling Uart.c... +compiling Ultrasonic.c... +linking... +Program Size: data=97.4 xdata=0 code=3849 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan.hex b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan.hex new file mode 100644 index 0000000..959d13c --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan.hex @@ -0,0 +1,273 @@ +:0F0EF20044697374616E63653A256275636D00C0 +:100D3800083F0000000000000000082F0A0A0A0A05 +:100D48000A0A0A0A0827000000000000000001390A +:010D58001E7C +:100E4800AE3DAF3E7C007D6412057DED4C70111205 +:100E58000D788F37E537D395394003D20A22C20A75 +:010E68002267 +:100A8500AE3DAF3E7C007D0A12057DED4C60030254 +:100A95000B19120CBE8F22E5256522FF5522F52381 +:100AA500E522F45FF524852225AF237E00EF64045B +:100AB5007008053CE53C5401F53CAD3C7C00ED700F +:100AC50009EF64084E7003853739ED64014C703CBD +:100AD500AF23FEEF640C7018AD39C3ED94F5748047 +:100AE500948040047DFF8004ED240AFD8D39801C2F +:100AF500EF64104E7016D3E539940A7480948050D3 +:100B0500047F008005E53924F6FF8F39E523640964 +:040B15007002D2098F +:010B190022B9 +:100C3700AE3DAF3E7C007D6412057DED4C7077754F +:100C47002F0BE53C04F53075330A75320A75310A06 +:100C5700AF3C7E00EF7004E5378002E53975F0643C +:100C67008475F00A84ADF08D34EF4E7004E537805B +:100C770002E53975F00A8475F00A84AFF08F35E51F +:100C87003C7004E5378002E53975F00A84AFF08FD0 +:100C9700367F05EFC39407748094805019742F2F03 +:100CA700F8E67012742E2FF8E6640A7009742F2F75 +:060CB700F8760A0F80DD53 +:010CBD002214 +:100E2400AF3C7E00EF70047D0180027D008D3FEFBA +:100E340064014E70047F0180027F008F40A20BE4A6 +:040E440033F541221F +:100E6900AE3DAF3E7C007DC812057DED4C70113062 +:100E7900090EC2097BFF7A0E79F285374A12067884 +:010E89002246 +:10000E00538E7F5389F0758A18758CFCC28DD28CF5 +:05001E00D2A9D2AF22BF +:03000B00020B1ACB +:100B1A00C0E0C0F0C083C082C0D075D000C000C0A1 +:100B2A0001C002C003C004C005C006C007053EE5F7 +:100B3A003E7002053DFFAE3DBE0309BFE806753DA6 +:100B4A0000753E00053BE53B64087002F53B300A40 +:100B5A00110526E52664C8700EF526A20BB3920B82 +:100B6A008005752600C20B742F253BF8E6FD742715 +:100B7A00253BF8E6FBAF3B120DEE743F253BF8E64A +:100B8A00FDAF3B120DB4D007D006D005D004D00378 +:100B9A00D002D001D000D0D0D082D083D0F0D0E023 +:010BAA003218 +:03002300020F08C1 +:010F080032B6 +:100EA700120E8A12000E120EDB120A85120E48125B +:0A0EB7000C37120E69120E2480EFB2 +:060D5900011C00011DFF5A +:100DB400ED600FA8077401088002C333D8FC421CFD +:100DC400800EA8077401088002C333D8FCF4521CB7 +:100DD400E51C651D6013E51CF4F580E5A0541F4473 +:090DE40080F5A053A01F851C1D21 +:010DED0022E3 +:100D5F000C08C0F9A4B0999282F88090FFC10814D2 +:080D6F0001020408102040807D +:100DEE007580FFE5A0541F44E0F5A074142FF8E6BB +:100DFE00F580E5A0541F44C0F5A053A01F74082D24 +:100E0E00F8E6F580EB600353807FE5A0541F44E0C5 +:060E1E00F5A053A01F2205 +:100CBE00E4FFC2A9C2C4D2C2D2B5D2B420B3027F5D +:100CCE000420B2027F0520B1027F0620B0027F070A +:100CDE00D2C4C2C2D2B5D2B420B3027F0820B202AF +:100CEE007F0920B1027F0A20B0027F0BD2C4D2C28C +:100CFE00C2B5D2B420B3027F0C20B2027F0D20B158 +:100D0E00027F0E20B0027F0FD2C4D2C2D2B5C2B4BF +:100D1E0020B3027F1020B2027F1120B1027F122079 +:090D2E00B0027F13D2A975B0FFD9 +:010D37002299 +:100E8A007580FFE5A0541F4480F5A053A01FE4F528 +:0D0E9A0080E5A0541F44A0F5A053A01F2226 +:100EDB00759850438E01438E0475D7C775D6FE4364 +:070EEB008E10D2ACD2AF2241 +:080003008F993099FDC299228A +:060F010000007F21DFFE6D +:010F070022C7 +:100EC100E4FEEEC3940874809480500DD290120F0A +:090ED10001C290120F010E80E92C +:010EDA0022F5 +:100D7800E4F5E9F5F9F5D8C2AF120EC1D2AFD2DE6B +:100D880030910330DFFAC2DE20DF1CAFF9EFFEAD91 +:100D9800E9EDFFAC06E41201317B967A43798B7852 +:0B0DA8003C12002602016AC2DF7F003F +:010DB300221D +:10002600EC4D6011E8497017ED33EC3304600DE4D4 +:10003600FCFFFEFD22E933E8330470F80201D61214 +:1000460001A158046009E4CC248150062850090215 +:1000560001E02840030201DDC0E0EB4A7044B980AC +:1000660006D0E0FB0201CCEF4E701CBD8008EBFF12 +:10007600EAFEE9FD80EBE98DF0A4FEE5F002010F52 +:10008600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89B5 +:10009600F0A42EFFE435F0CD89F0A42DFEE435F072 +:1000A6008067EF4E7005BD80D780C3EF8BF0A4ACA0 +:1000B600F0EE8BF0A42CFCE435F0F8EF8AF0A42CDB +:1000C600E5F038FCE433CB8DF0A42CFCE5F03BF8EE +:1000D600EE8AF0A42CFCE5F038F8E433CF89F0A4DE +:1000E6002CFCE5F038CF3400CE89F0A42FFFE5F0E4 +:1000F6003EFEE433C98DF0A42EFEE5F039CD8AF03C +:10010600A42FFFE5F03EFEE43DFD33D0E0FB5007B3 +:100116000BBB000F0201E0EC2CFCEF33FFEE33FECD +:06012600ED33FD0201B8FB +:10012C0075F020800E75F010800575F0087D007E4E +:10013C00007F003392D530D5031205D2EC3340103A +:10014C00EF33FFEE33FEED33FDEC33FCD5F0ED2257 +:0E015C00E5F0247EA2D513CC92E7CDCEFF2293 +:10016A00EDD2E7CD33EC3392D524814006E4FFFE8D +:10017A00FDFC22FCE4CFCECDCC24E0501174FF80EC +:10018A00EDC3CC13CCCD13CDCE13CECF13CF047089 +:07019A00F030D5DE0205D2B2 +:10061600E55E244AF8E6055E227847300702784A06 +:10062600E475F0011205E00205252000EB7F2ED2CD +:10063600008018EF540F2490D43440D4FF30040BBC +:10064600EF24BFB41A0050032461FFE55F60021572 +:100656005F0562E5627002056130070D7847E47553 +:10066600F0011205E0EF02056B0200037403D207E6 +:100676008003E4C207F55E8B478A488949E4F55F43 +:10068600F561F562E55F60077F2012065180F5751A +:1006960060FFC201C200C202C203C205C206C2088E +:1006A60012061FFF700D3007057F00120662AF624B +:1006B600AE6122B4255FC2D5C20412061FFF24D044 +:1006C600B40A00501A75F00A785F30D50508B6FFEF +:1006D6000106C6A426F620D5047002D20380D924CA +:1006E600CFB41A00EF5004C2E5D20402094FD2017A +:1006F60080C6D20080C0D20280BCD2D580BAD205D4 +:1007060080B47F201206512002077401B55F0040B5 +:10071600F1120616FF12065102068AD208D2068088 +:1007260095120616FB120616FA120616F94A4B70B1 +:100736000679467A0A7BFF20022EE55F602A7E0054 +:100746008E8275830012053E60060EEE656070F0BF +:10075600C2D5EBC0E0EAC0E0E9C0E0EE1209AFD0D6 +:10076600E0F9D0E0FAD0E0FB120525FF60AAEBC065 +:10077600E0EAC0E0E9C0E0120651D0E02401F9D079 +:10078600E03400FAD0E0FBE5600460DCD560D98097 +:1007960087D20280A212099260F7E5607001041206 +:1007A60001EBA960600DE560600914F560120A3975 +:1007B600EF60F3EA30E702F404C3995077EAF425D0 +:1007C600600430E701E404F560800D12099260C10F +:1007D600EA056025601201EBEA785DF630E701E490 +:1007E600256004D56004200501141209AFE4C0E0B9 +:1007F600120A39785DE6601320E70714F612063907 +:10080600802204F6D0E014C0E07F00120639E560CD +:1008160060071206301560800B300503120630D0D3 +:10082600E002068AD0E00480C512099260A0E56065 +:10083600041201EB785DEAF6E5602005026001042A +:0508460024041209AFBB +:10084B0074FF04C0E0120A39120639E56020050274 +:10085B006003120630D0E0B560E87F45120643789E +:10086B005DE67F2B30E7047F2DF404C0E0120651C8 +:10087B00D0E075F00A84C0F012063AD0E012063AC6 +:10088B0002068A791080027908C206C2088008D253 +:10089B00D5790A8004790AC2D5E560047002F56047 +:1008AB00E4FAFDFEFF120616FC7B0820011312066C +:1008BB0016FD7B1030000A120616FE120616FF7B81 +:1008CB0020EC3382D592D55013C3E43000069FFF42 +:1008DB00E49EFEE42001039DFDE49CFCE4CBF8C206 +:1008EB0001EC700CCFCECDCCE824F8F870F3801768 +:1008FB00C3EF33FFEE33FEED33FDEC33FCEB33FB99 +:10090B00994002FB0FD8E9EB300105F8D0E0C44861 +:10091B00B201C0E00AEC4D4E4F78207B0070C2EA6A +:10092B00B5600040BCC0E01209B1D0F0D0E02001AE +:10093B0004C4C0E0C4B201C0F012063AD0F0D5F046 +:10094B00EB02068A1205F0072753088E5806F84C5F +:10095B0006F44208924F089A44089A49070D430837 +:10096B00A05507D146082F45079B470A665006FC42 +:10097B002D07002E07232B0704230721200A4F2ABC +:10098B0006BC480000071BE560B4FF037560061248 +:10099B000616FC120616FD120616FE120616FF7838 +:1009AB005602021A790AA2D5200314300509B91090 +:1009BB00020404B9080104A2D52006025001042048 +:1009CB0002689202B55F005034C0E07F20300319FB +:1009DB007F30A20272067205500F120A08C202C2C1 +:1009EB0006C205C2087F30800F300503E9C0E01254 +:1009FB000651300503D0E0F9D0E0B55FCC300517D8 +:100A0B007F30B9100C1206517F583004077F788065 +:100A1B0003B908031206513002057F2D0206517FE0 +:100A2B00202008F87F2B2006F322920280CF7F0034 +:100A3B00B4070050052456F8E6FF22286E756C6C3F +:100A4B002900D2011206163001F8C201785F30D5A9 +:100A5B000108F60206BC2D50434958120616240312 +:100A6B00B405004001E4900A6193120642743A12F5 +:0A0A7B000642D203755F0402088EE4 +:1001A100E9D2E7C933E833F892D5EDD2E7CD33ECA4 +:0701B10033FC5002B2D5221D +:1001B800EC30E7100FBF000C0EBE00080DBD0004A8 +:1001C8000BEB6014A2D5EB13FCED92E7FD2274FF54 +:1001D800FCFDFEFF22E480F8A2D574FF13FC7D80AD +:0301E800E480EFC1 +:1001EB00F920E72824F950037907E4F42402FB18DB +:1001FB00DBFDE624FB5014E9600DE4F618E604F68B +:0F020B00B40A08E4F6D9F57401F60A22C2D52226 +:10021A00ED33EC3392D5FA602AB4FF33EDC2E77BB3 +:10022A00FF60067A02793FE4227A02794820D504EF +:10023A007A027943224E614E002B494E46002D49DF +:10024A004E4600E47A08F608DAFC7B00740722E8D6 +:10025A00C0E0ECC0E0EDC0E0EEC0E0EFC0E0EA755F +:10026A00F010A4CAABF075F04DA42BFBE435F0FCFA +:10027A00EA2410FAEB34C5FBEC34D9FCEDC2E7FFF3 +:10028A0075F056A4F42411C5F0F434C58FF0A42AED +:10029A00E5F03BE43CF620E7141204E5D0E0FFD099 +:1002AA00E0FED0E0FDD0E0FC1204188014F4041241 +:1002BA0004E5D0E0FFD0E0FED0E0FDD0E0FC120083 +:1002CA0026D0E0F8E6FAEDD2E7CD33EC332482FB10 +:1002DA00E4C3CF33CFCE33CECD33CD33DBF37B077D +:1002EA0075F00A846004F6081B0AE5F0F6088FF038 +:1002FA00740AA4FFACF08EF0740AA42CFEACF05081 +:10030A00010C8DF0740AA42CFDE435F0F608DBDE4E +:03031A0074072243 +:10031D000201D6E86480F8E933E83360110460F037 +:10032D00ED33EC337009E8FCE9FDEAFEEBFF220446 +:10033D0060DED3EB9FEA9EE99DE8C2E78CF0C2F741 +:10034D0095F0400CE8CCF8E9CDF9EACEFAEBCFFB0D +:10035D001201A185D0F05804700320D5B3E80470C4 +:10036D00075002B2D50201E092D5EC0460F7E4CC5F +:10037D00C0E0C398F8603B94186008400DD0E0FBD6 +:10038D000201B8E4FBFAC9FC8028E830E406E4C9B0 +:10039D00FBE4CAFCE830E305E4C9CACBFCE854072A +:1003AD006010F8C3E913F9EA13FAEB13FBEC13FC35 +:1003BD00D8F130F52FC3E49CFCEF9BFFEE9AFEEDD8 +:1003CD0099FDD0E0FBEF4E4D4C701222DB03020184 +:1003DD00DDEC2CFCEF33FFEE33FEED33FDED30E7BE +:1003ED00EB0201B8EF2BFFEE3AFEED39FDD0E0FB4D +:1003FD0050130BBB00030201E0ED13FDEE13FEEFF6 +:08040D0013FFEC13FC0201B81F +:100415000201E0EC5D046005E8590470030201D6B1 +:100425001201A1580460F6EC4860F2EC7004FDFE80 +:10043500FF22C860DB2481C85009C39860025006BA +:100445000201DD9850CAF582E9294B4A7005AB8255 +:100455000201CC75F0007C1A7880C3EF9BEE9AED13 +:1004650099400DC3EF9BFFEE9AFEED99FDE842F032 +:10047500DC23ACF0D0E0FFD0E0FED0E0FDAB822085 +:10048500E7101BEB60BAEC2CFCEF33FFEE33FEED0F +:1004950033FD0201B8E803F830E705C0F075F00058 +:1004A500EF2FFFEE33FEED33FD40B830E7C280AAF3 +:1004B5003F8000004120000042C80000447A00004F +:1004C500461C400047C35000497424004B189680D1 +:1004D5004CBEBC205A0E1BCA6753C21C749DC5AEC8 +:1004E500FB60065407601C2323120513EB54386088 +:1004F500091204FF12050E120026ECF8EDF9EEFACA +:10050500EFCB22EB12050E80F1543803241C900426 +:10051500B5FE93FC0EEE93FD0EEE930ECE93FF22E9 +:03000000020BAB45 +:0C0BAB00787FE4F6D8FD758162020BF241 +:10052500BB010689828A83E0225002E722BBFE02D4 +:09053500E32289828A83E4932207 +:10053E00BB010CE58229F582E5833AF583E0225072 +:10054E0006E92582F8E622BBFE06E92582F8E222BC +:0D055E00E58229F582E5833AF583E49322D6 +:10056B00BB010689828A83F0225002F722BBFE016F +:02057B00F32269 +:10057D00BC000BBE0029EF8DF084FFADF022E4CC62 +:10058D00F875F008EF2FFFEE33FEEC33FCEE9DEC2B +:10059D00984005FCEE9DFE0FD5F0E9E4CEFD22ED71 +:1005AD00F8F5F0EE8420D21CFEADF075F008EF2FBB +:1005BD00FFED33FD4007985006D5F0F222C398FDAC +:0505CD000FD5F0EA2249 +:0E05D200C3E49FFFE49EFEE49DFDE49CFC223A +:1005E000FAE6FB0808E6F925F0F618E6CA3AF6221C +:1005F000D083D082F8E4937012740193700DA3A39A +:1006000093F8740193F5828883E4737402936860AD +:06061000EFA3A3A380DFAD +:100BB700020EA7E493A3F8E493A34003F68001F29F +:100BC70008DFF48029E493A3F85407240CC8C3333F +:100BD700C4540F4420C8834004F456800146F6DF0E +:100BE700E4800B0102040810204080900D38E47E59 +:100BF700019360BCA3FF543F30E509541FFEE49303 +:100C0700A360010ECF54C025E060A840B8E493A3C9 +:100C1700FAE493A3F8E493A3C8C582C8CAC583CAF4 +:100C2700F0A3C8C582C8CAC583CADFE9DEE780BEAC +:010D7700007B +:00000001FF diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan.lnp b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan.lnp new file mode 100644 index 0000000..d7b8861 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/Objects/zuolan.lnp @@ -0,0 +1,9 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\Uart.obj", +".\Objects\Ultrasonic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/main.c b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/main.c new file mode 100644 index 0000000..423fb88 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/main.c @@ -0,0 +1,166 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ̷ */ +uchar Key_Slow_Down; + +/* ʱ䷽ */ +uint time_all_1s; +uchar time_200ms; +/* */ +uchar Dis_value; +uchar Dis_para = 30; +/* ʾ */ +uchar Seg_show_mode; // 0 ʾ 1 ʾ + +/* ж */ +bit Send_data_flag; +bit Wring_flag; +bit Led_blink; +/* ݴ */ +void Data_Proc() +{ + if (time_all_1s % 100 == 0) + { + // ȡ + Dis_value = Ut_Wave_Data(); + if (Dis_value > Dis_para) + Wring_flag = 1; + else + Wring_flag = 0; + } +} +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (time_all_1s % 10) + return; + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 4) + Seg_show_mode = (++Seg_show_mode) % 2; + if (Seg_show_mode == 0) + if (Key_Down == 8) + Dis_para = Dis_value; + if (Seg_show_mode == 1) + { + if (Key_Down == 12) + Dis_para = (Dis_para >= 245) ? 255 + : Dis_para + 10; + else if (Key_Down == 16) + Dis_para = (Dis_para <= 10) ? 0 + : Dis_para - 10; + } + if (Key_Down == 9) + Send_data_flag = 1; +} +/* ܴ */ +void Seg_Proc() +{ + uchar i; + if (time_all_1s % 100) + return; + Seg_Buf[0] = 11; // U + Seg_Buf[1] = Seg_show_mode + 1; + Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + Seg_Buf[5] = (Seg_show_mode == 0) ? Dis_value / 100 % 10 + : Dis_para / 100 % 10; + Seg_Buf[6] = (Seg_show_mode == 0) ? Dis_value / 10 % 10 + : Dis_para / 10 % 10; + Seg_Buf[7] = (Seg_show_mode == 0) ? Dis_value % 10 + : Dis_para % 10; + i = 5; + while (i < 7) + { + if (Seg_Buf[i] == 0 && Seg_Buf[i - 1] == 10) + Seg_Buf[i] = 10; + else + break; + i++; + } +} + +/* LED */ +void Led_Proc() +{ + ucLed[0] = (Seg_show_mode == 0); + ucLed[1] = (Seg_show_mode == 1); + ucLed[2] = Led_blink; +} + +/* ڴ */ +void Uart_Proc() +{ + if (time_all_1s % 200) + return; + if (Send_data_flag) + { + Send_data_flag = 0; + printf("Distance:%bucm", Dis_value); + } +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++time_all_1s == 1000) + time_all_1s = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (Wring_flag) + { + if (++time_200ms == 200) + { + time_200ms = 0; + Led_blink ^= 1; + } + } + else + { + time_200ms = 0; + Led_blink = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} +void Uart1_Isr(void) interrupt 4 +{ +} + +void main() +{ + System_Init(); + Timer0_Init(); + Uart1_Init(); + while (1) + { + Key_Proc(); + Data_Proc(); + Seg_Proc(); + Uart_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/main.h b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/main.h new file mode 100644 index 0000000..11e238a --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/main.h @@ -0,0 +1,12 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "Uart.h" +#include "Ultrasonic.h" +#include "intrins.h" +#include "Init.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/zuolan.uvgui.haze b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/zuolan.uvgui.haze new file mode 100644 index 0000000..0e99173 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/zuolan.uvgui.haze @@ -0,0 +1,2628 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 578 544 + + + 204 + Performance Analyzer + 1122 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 2 + 3 + + -32000 + -32024 + + + -1 + -1 + + + 71 + 530 + 1568 + 559 + + + + 0 + + 452 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000400000002000000010000002F433A5C55736572735C68617A655C4465736B746F705C34543134BDECC4A3C4E2315C4472697665725C556172742E680000000006556172742E6800000000BCA8E100FFFFFFFF25443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000F0A0A100FFFFFFFF2D433A5C55736572735C68617A655C4465736B746F705C34543134BDECC4A3C4E2315C557365725C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF2F433A5C55736572735C68617A655C4465736B746F705C34543134BDECC4A3C4E2315C4472697665725C556172742E630000000006556172742E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E000000000600002D020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100007E00000070040000EB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000001602000000060000E5020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000EB000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000CF010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000FE010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100002D020000000000004F00000090010000FE0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000BF01000070040000400200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FE010000000600000202000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000310200000006000014030000000000000202000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2026 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000250319600000000000000030002503103736275027362000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000000060000B7000000 + + + 16 + 940100007E00000000060000E6000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 3C0000006B0000001F0100000E020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 3C0000006B0000001F0100000E020000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 3C0000006B0000001F0100000E020000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000006902000000030000E5020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 940100006300000000060000B7000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100004C020000 + + + 16 + 3C0000006B0000001F0100000E020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + 3C0000006B0000001F0100000E020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0703000080020000FD050000CC020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2618 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF94010000B700000000060000BB000000010000000100001004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000940100007E00000000060000E6000000940100004F00000000060000B70000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008C010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000BB010000E00200004F000000700400008C0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000065020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E0000009001000094020000000000004F00000090010000650200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000065020000000600006902000001000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000100000004030000980200000006000014030000040300006902000000060000E502000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF000000000000000001000000000000000100000001000000FFFFFFFF000300006902000004030000E502000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000008C0100007004000090010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000000000000000000BF0100007004000027020000000000009001000070040000F80100000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2026 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000250319600000000000000030002503103736275027362000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 2 + + ..\Driver\Uart.h + 20 + 1 + 1 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 4 + 91 + 105 + 1 + + 0 + + + ..\Driver\Uart.c + 0 + 1 + 1 + 1 + + 0 + + + + +
diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/zuolan.uvopt b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/zuolan.uvopt new file mode 100644 index 0000000..b615e31 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/zuolan.uvopt @@ -0,0 +1,275 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + + + + + + + + + + + BIN\STCMON51.DLL + + + + 0 + STCMON51 + -S3 -B115200 -O0 -U0 + + + 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 + VDM51 + + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 1 + 0 + 0 + 0 + ..\Driver\Uart.c + Uart.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Ultrasonic.c + Ultrasonic.c + 0 + 0 + + + +
diff --git a/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/zuolan.uvproj b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/zuolan.uvproj new file mode 100644 index 0000000..9b26e67 --- /dev/null +++ b/题目/模拟题/4T14届模拟_左岚83.3/4T14届模拟1/User/zuolan.uvproj @@ -0,0 +1,410 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 10 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + Uart.c + 1 + ..\Driver\Uart.c + + + Ultrasonic.c + 1 + ..\Driver\Ultrasonic.c + + + + + + + +
diff --git a/题目/模拟题/4T15届模拟1_左岚85.zip b/题目/模拟题/4T15届模拟1_左岚85.zip new file mode 100644 index 0000000..0f65b8e Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85.zip differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/15模拟1.jpg b/题目/模拟题/4T15届模拟1_左岚85/15模拟1.jpg new file mode 100644 index 0000000..c49c0c7 Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/15模拟1.jpg differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/.vscode/settings.json b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/.vscode/settings.json new file mode 100644 index 0000000..0a6e091 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/.vscode/settings.json @@ -0,0 +1,19 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "stc15f2k60s2.h": "c", + "key.h": "c", + "ultrasonic.h": "c", + "led.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Init.c b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Init.h b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Key.c b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Key.h b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Led.c b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Led.c new file mode 100644 index 0000000..4749a48 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Led.c @@ -0,0 +1,21 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Led.h b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Led.h new file mode 100644 index 0000000..e50c9a7 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Led.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Seg.c b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Seg.c new file mode 100644 index 0000000..2d40a48 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Seg.c @@ -0,0 +1,24 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 - C E +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0xbf, 0xc6, 0x86}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Seg.h b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/ds1302.c b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/ds1302.c new file mode 100644 index 0000000..9458779 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/ds1302.c @@ -0,0 +1,83 @@ +/* # DS1302代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "ds1302.h" +#include "REG52.H" +#include "intrins.h" +sbit SCK = P1 ^ 7; +sbit SDA = P2 ^ 3; +sbit RST = P1 ^ 3; +// +void Write_Ds1302(unsigned char temp) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + SCK = 0; + SDA = temp & 0x01; + temp >>= 1; + SCK = 1; + } +} + +// +void Write_Ds1302_Byte(unsigned char address, unsigned char dat) +{ + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST = 0; +} + +// +unsigned char Read_Ds1302_Byte(unsigned char address) +{ + unsigned char i, temp = 0x00; + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + for (i = 0; i < 8; i++) + { + SCK = 0; + temp >>= 1; + if (SDA) + temp |= 0x80; + SCK = 1; + } + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + SCK = 1; + _nop_(); + SDA = 0; + _nop_(); + SDA = 1; + _nop_(); + return (temp); +} +void Set_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + for (i = 0; i < 3; i++) + Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 +} +void Read_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + for (i = 0; i < 3; i++) + ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/ds1302.h b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/ds1302.h new file mode 100644 index 0000000..e8bfdf4 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/ds1302.h @@ -0,0 +1,2 @@ +void Set_Rtc(unsigned char *ucRtc); +void Read_Rtc(unsigned char *ucRtc); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/iic.c b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/iic.c new file mode 100644 index 0000000..30c4bcb --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/iic.c @@ -0,0 +1,174 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +/// @brief EEPROM 写函数 +/// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 写入的数组大小 +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); // 写入的数据的地址 + I2CWaitAck(); + while (num--) + { + I2CSendByte(*EEPROM_String++); + I2CWaitAck(); + I2C_Delay(200); + } + I2CStop(); +} +/// @brief EEPROM 读函数 +/// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 读取的数组大小 +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); + I2CWaitAck(); + + // 选择芯片为EEPROM,模式为读 + I2CStart(); + I2CSendByte(0xA1); + I2CWaitAck(); + while (num--) + { + *EEPROM_String++ = I2CReceiveByte(); + if (num) + I2CSendAck(0); + else + I2CSendAck(1); // 停止读取 + } + I2CStop(); +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/iic.h b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/iic.h new file mode 100644 index 0000000..e6637d2 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/Driver/iic.h @@ -0,0 +1,3 @@ +#include "STC15F2K60S2.H" +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Init.lst b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Init.lst new file mode 100644 index 0000000..833f2cb --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 02/29/2024 17:23:08 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Key.lst b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Key.lst new file mode 100644 index 0000000..02f1e30 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 02/29/2024 17:23:08 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 02/29/2024 17:23:08 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Led.lst b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Led.lst new file mode 100644 index 0000000..ec9eedb --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Led.lst @@ -0,0 +1,45 @@ +C51 COMPILER V9.59.0.0 LED 02/29/2024 17:23:08 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 58 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 2 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Seg.lst b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Seg.lst new file mode 100644 index 0000000..810367f --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Seg.lst @@ -0,0 +1,48 @@ +C51 COMPILER V9.59.0.0 SEG 02/29/2024 17:23:08 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 - C E + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0xbf, 0xc6, 0x86}; + 5 // λѡ + 6 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 8 { + 9 1 // ֶ + 10 1 P0 = 0xff; + 11 1 P2 = P2 & 0x1f | 0xe0; + 12 1 + 13 1 // ѡʾλ + 14 1 P0 = seg_wela[wela]; + 15 1 P2 = P2 & 0x1f | 0xc0; + 16 1 P2 &= 0x1f; + 17 1 + 18 1 // ѡʾ + 19 1 P0 = seg_dula[dula]; + 20 1 if (point) + 21 1 P0 &= 0x7f; + 22 1 P2 = P2 & 0x1f | 0xe0; + 23 1 P2 &= 0x1f; + 24 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 22 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Uart.lst b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Ultrasonic.lst b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/ds1302.lst b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/ds1302.lst new file mode 100644 index 0000000..7fd46c8 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/29/2024 17:23:08 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/29/2024 17:23:08 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/iic.lst b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/iic.lst new file mode 100644 index 0000000..3d404dd --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/iic.lst @@ -0,0 +1,205 @@ +C51 COMPILER V9.59.0.0 IIC 02/29/2024 17:23:08 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 02/29/2024 17:23:08 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 02/29/2024 17:23:08 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 /// @brief EEPROM 写函数 + 127 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 128 /// @param addr 8的倍数 + 129 /// @param num 写入的数组大小 + 130 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 131 { + 132 1 // 选择芯片为EEPROM,模式为写 + 133 1 I2CStart(); + 134 1 I2CSendByte(0xA0); + 135 1 I2CWaitAck(); + 136 1 + 137 1 I2CSendByte(addr); // 写入的数据的地址 + 138 1 I2CWaitAck(); + 139 1 while (num--) + 140 1 { + 141 2 I2CSendByte(*EEPROM_String++); + 142 2 I2CWaitAck(); + 143 2 I2C_Delay(200); + 144 2 } + 145 1 I2CStop(); + 146 1 } + 147 /// @brief EEPROM 读函数 + 148 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 149 /// @param addr 8的倍数 + 150 /// @param num 读取的数组大小 + 151 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 152 { + 153 1 // 选择芯片为EEPROM,模式为写 + 154 1 I2CStart(); + 155 1 I2CSendByte(0xA0); + 156 1 I2CWaitAck(); + 157 1 + 158 1 I2CSendByte(addr); + 159 1 I2CWaitAck(); + 160 1 + 161 1 // 选择芯片为EEPROM,模式为读 + 162 1 I2CStart(); + 163 1 I2CSendByte(0xA1); + 164 1 I2CWaitAck(); + 165 1 while (num--) + 166 1 { + 167 2 *EEPROM_String++ = I2CReceiveByte(); + 168 2 if (num) + 169 2 I2CSendAck(0); + 170 2 else + 171 2 I2CSendAck(1); // 停止读取 + 172 2 } + 173 1 I2CStop(); + 174 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + C51 COMPILER V9.59.0.0 IIC 02/29/2024 17:23:08 PAGE 4 + + CODE SIZE = 320 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/main.lst b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/main.lst new file mode 100644 index 0000000..ff8dcae --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/main.lst @@ -0,0 +1,253 @@ +C51 COMPILER V9.59.0.0 MAIN 02/29/2024 17:23:08 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ʱ䷽ */ + 12 uchar ucRtc[3] = {0x13, 0x11, 0x11}; // ʼʱ13:11:11 + 13 uchar input_time[3]; // ݵʱ + 14 /* ̷ */ + 15 uchar Key_Slow_Down; + 16 + 17 /* ʾ */ + 18 uchar Seg_show_mode; // 0 ʱ 1 2 ¼ + 19 + 20 /* */ + 21 uchar input_data_arr[4]; // λ + 22 uchar input_data_index; // ݵ + 23 uint new_value; + 24 uint old_value; + 25 uchar EEPROM_string_new[4]; + 26 uchar EEPROM_string_old[4]; + 27 bit data_up_flag; // ־ + 28 /* ̴ */ + 29 void Key_Proc() + 30 { + 31 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 32 1 uchar i; + 33 1 if (Key_Slow_Down) + 34 1 return; + 35 1 Key_Slow_Down = 1; + 36 1 + 37 1 Key_Val = Key_Read(); + 38 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 39 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 40 1 Key_Old = Key_Val; + 41 1 if (Key_Down == 4) + 42 1 { + 43 2 // 水лݽд룬ォµֵ + 44 2 if (Seg_show_mode == 1) + 45 2 { + 46 3 new_value = input_data_arr[0] * 1000 + input_data_arr[1] * 100 + input_data_arr[2] * 10 + inpu + -t_data_arr[3]; + 47 3 EEPROM_string_new[0] = input_time[0] / 16 * 10 + input_time[0] % 16; + 48 3 EEPROM_string_new[1] = input_time[1] / 16 * 10 + input_time[1] % 16; + 49 3 EEPROM_string_new[2] = new_value >> 8; + 50 3 EEPROM_string_new[3] = new_value & 0x00ff; + 51 3 EEPROM_Write(EEPROM_string_new, 0, 4); + 52 3 data_up_flag = (new_value > old_value); + 53 3 old_value = new_value; + C51 COMPILER V9.59.0.0 MAIN 02/29/2024 17:23:08 PAGE 2 + + 54 3 } + 55 2 Seg_show_mode = (++Seg_show_mode) % 3; + 56 2 for (i = 0; i < 4; i++) + 57 2 input_data_arr[i] = 10; // ֱӶӦÿνнлʱһ + 58 2 input_data_index = 0; // + 59 2 } + 60 1 if (Seg_show_mode == 1) + 61 1 { + 62 2 // + 63 2 if (Key_Down == 5) + 64 2 { + 65 3 for (i = 0; i < 4; i++) + 66 3 input_data_arr[i] = 10; // ֱӶӦÿνнлʱһ + 67 3 input_data_index = 0; // + 68 3 } + 69 2 // һλ + 70 2 if (input_data_index == 1) + 71 2 Read_Rtc(input_time); + 72 2 // ݲλʱ + 73 2 if (input_data_index < 4) + 74 2 { + 75 3 switch (Key_Down) + 76 3 { + 77 4 case 6: + 78 4 input_data_arr[input_data_index] = 0; + 79 4 input_data_index++; + 80 4 break; + 81 4 case 8: + 82 4 input_data_arr[input_data_index] = 7; + 83 4 input_data_index++; + 84 4 break; + 85 4 case 12: + 86 4 input_data_arr[input_data_index] = 8; + 87 4 input_data_index++; + 88 4 break; + 89 4 case 16: + 90 4 input_data_arr[input_data_index] = 9; + 91 4 input_data_index++; + 92 4 break; + 93 4 case 9: + 94 4 input_data_arr[input_data_index] = 4; + 95 4 input_data_index++; + 96 4 break; + 97 4 case 13: + 98 4 input_data_arr[input_data_index] = 5; + 99 4 input_data_index++; + 100 4 break; + 101 4 case 17: + 102 4 input_data_arr[input_data_index] = 6; + 103 4 input_data_index++; + 104 4 break; + 105 4 case 10: + 106 4 input_data_arr[input_data_index] = 1; + 107 4 input_data_index++; + 108 4 break; + 109 4 case 14: + 110 4 input_data_arr[input_data_index] = 2; + 111 4 input_data_index++; + 112 4 break; + 113 4 case 18: + 114 4 input_data_arr[input_data_index] = 3; + 115 4 input_data_index++; + C51 COMPILER V9.59.0.0 MAIN 02/29/2024 17:23:08 PAGE 3 + + 116 4 break; + 117 4 } + 118 3 } + 119 2 } + 120 1 } + 121 /* ܴ */ + 122 void Seg_Proc() + 123 { + 124 1 uchar i; + 125 1 if (Seg_Slow_Down) + 126 1 return; + 127 1 Seg_Slow_Down = 1; + 128 1 switch (Seg_show_mode) + 129 1 { + 130 2 case 0: + 131 2 /* ʱ */ + 132 2 Read_Rtc(ucRtc); + 133 2 Seg_Buf[0] = ucRtc[0] / 16; + 134 2 Seg_Buf[1] = ucRtc[0] % 16; + 135 2 Seg_Buf[2] = 11; //- + 136 2 Seg_Buf[3] = ucRtc[1] / 16; + 137 2 Seg_Buf[4] = ucRtc[1] % 16; + 138 2 Seg_Buf[5] = 11; //- + 139 2 Seg_Buf[6] = ucRtc[2] / 16; + 140 2 Seg_Buf[7] = ucRtc[2] % 16; + 141 2 break; + 142 2 + 143 2 case 1: + 144 2 /* */ + 145 2 Seg_Buf[0] = 12; // C + 146 2 Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = 10; + 147 2 // ûʱֱǿյ + 148 2 if (input_data_index == 0) + 149 2 { + 150 3 Seg_Buf[4] = Seg_Buf[5] = Seg_Buf[6] = Seg_Buf[7] = 10; + 151 3 } + 152 2 else + 153 2 { + 154 3 for (i = 0; i < input_data_index; i++) + 155 3 { + 156 4 Seg_Buf[7 - i] = input_data_arr[input_data_index - i - 1]; + 157 4 } + 158 3 } + 159 2 break; + 160 2 case 2: + 161 2 /* ¼ */ + 162 2 Seg_Buf[0] = 13; // E + 163 2 Seg_Buf[1] = Seg_Buf[2] = 10; + 164 2 Seg_Buf[3] = input_time[0] / 16; + 165 2 Seg_Buf[4] = input_time[0] % 16; + 166 2 Seg_Buf[5] = 11; //- + 167 2 Seg_Buf[6] = input_time[1] / 16; + 168 2 Seg_Buf[7] = input_time[1] % 16; + 169 2 break; + 170 2 } + 171 1 } + 172 + 173 /* LED */ + 174 void Led_Proc() + 175 { + 176 1 ucLed[0] = (Seg_show_mode == 0); + 177 1 ucLed[1] = (Seg_show_mode == 1); + C51 COMPILER V9.59.0.0 MAIN 02/29/2024 17:23:08 PAGE 4 + + 178 1 ucLed[2] = (Seg_show_mode == 2); + 179 1 + 180 1 ucLed[3] = data_up_flag; + 181 1 } + 182 + 183 /* ʱ0жϳʼ */ + 184 void Timer0_Init(void) // 1@12.000MHz + 185 { + 186 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 187 1 TMOD &= 0xF0; // öʱģʽ + 188 1 TL0 = 0x18; // öʱʼֵ + 189 1 TH0 = 0xFC; // öʱʼֵ + 190 1 TF0 = 0; // TF0־ + 191 1 TR0 = 1; // ʱ0ʼʱ + 192 1 ET0 = 1; + 193 1 EA = 1; + 194 1 } + 195 + 196 /* ʱ0жϺ */ + 197 void Timer0_ISR(void) interrupt 1 + 198 { + 199 1 if (++Key_Slow_Down == 10) + 200 1 Key_Slow_Down = 0; + 201 1 if (++Seg_Slow_Down == 200) + 202 1 Seg_Slow_Down = 0; + 203 1 if (++Seg_Pos == 8) + 204 1 Seg_Pos = 0; + 205 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 206 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 207 1 } + 208 + 209 void main() + 210 { + 211 1 System_Init(); + 212 1 Timer0_Init(); + 213 1 Set_Rtc(ucRtc); + 214 1 EEPROM_Read(EEPROM_string_old, 0, 4); + 215 1 old_value = EEPROM_string_old[2] << 8 | EEPROM_string_old[3]; + 216 1 while (1) + 217 1 { + 218 2 Key_Proc(); + 219 2 Seg_Proc(); + 220 2 Led_Proc(); + 221 2 } + 222 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 867 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 55 1 + IDATA SIZE = ---- ---- + BIT SIZE = 1 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/onewire.lst b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/onewire.lst new file mode 100644 index 0000000..c7f63e7 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/zuolan.m51 b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/zuolan.m51 new file mode 100644 index 0000000..a206ad1 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Listings/zuolan.m51 @@ -0,0 +1,975 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\ds1302.obj, .\Objects\iic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\ds1302.obj (DS1302) + .\Objects\iic.obj (IIC) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?IMUL) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0016H UNIT ?DT?SEG + DATA 001EH 0002H UNIT ?DT?LED + BIT 0020H.0 0000H.1 UNIT ?BI?MAIN + 0020H.1 0000H.7 *** GAP *** + DATA 0021H 0037H UNIT ?DT?MAIN + DATA 0058H 0006H UNIT _DATA_GROUP_ + IDATA 005EH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + 0003H 0008H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 01C5H UNIT ?PR?KEY_PROC?MAIN + CODE 01D3H 00B2H UNIT ?PR?SEG_PROC?MAIN + CODE 0285H 008CH UNIT ?C_C51STARTUP + CODE 0311H 008CH UNIT ?C?LIB_CODE + CODE 039DH 007AH UNIT ?PR?KEY_READ?KEY + CODE 0417H 0075H UNIT ?PR?TIMER0_ISR?MAIN + CODE 048CH 0044H UNIT ?C_INITSEG + CODE 04D0H 0042H UNIT ?PR?_EEPROM_READ?IIC + CODE 0512H 003EH UNIT ?PR?_SET_RTC?DS1302 + CODE 0550H 003DH UNIT ?PR?_READ_DS1302_BYTE?DS1302 + CODE 058DH 003AH UNIT ?PR?_LED_DISP?LED + CODE 05C7H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 05FDH 0035H UNIT ?PR?_I2CSENDBYTE?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 2 + + + CODE 0632H 0032H UNIT ?PR?LED_PROC?MAIN + CODE 0664H 0032H UNIT ?PR?_EEPROM_WRITE?IIC + CODE 0696H 0031H UNIT ?PR?_READ_RTC?DS1302 + CODE 06C7H 0030H UNIT ?PR?MAIN?MAIN + CODE 06F7H 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 071DH 0024H UNIT ?PR?I2CWAITACK?IIC + CODE 0741H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 075EH 001CH UNIT ?PR?_WRITE_DS1302?DS1302 + CODE 077AH 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 0794H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 07ACH 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 07C1H 0014H UNIT ?PR?_WRITE_DS1302_BYTE?DS1302 + CODE 07D5H 000FH UNIT ?PR?I2CSTART?IIC + CODE 07E4H 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT DATA_GROUP + +--> CALLED SEGMENT START LENGTH +----------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?_SET_RTC?DS1302 + +--> ?PR?_EEPROM_READ?IIC + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?_SET_RTC?DS1302 0058H 0003H + +--> ?PR?_WRITE_DS1302_BYTE?DS1302 + +?PR?_WRITE_DS1302_BYTE?DS1302 ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?_EEPROM_READ?IIC 0058H 0005H + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CWAITACK?IIC ----- ----- + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 3 + + + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTART?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDACK?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?KEY_PROC?MAIN 0058H 0001H + +--> ?PR?KEY_READ?KEY + +--> ?PR?_EEPROM_WRITE?IIC + +--> ?PR?_READ_RTC?DS1302 + +?PR?_EEPROM_WRITE?IIC 0059H 0005H + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?_READ_RTC?DS1302 0059H 0003H + +--> ?PR?_READ_DS1302_BYTE?DS1302 + +?PR?_READ_DS1302_BYTE?DS1302 ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?SEG_PROC?MAIN ----- ----- + +--> ?PR?_READ_RTC?DS1302 + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:0417H PUBLIC Timer0_ISR + D:0025H PUBLIC ucRtc + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 4 + + + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0632H PUBLIC Led_Proc + D:0028H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:01D3H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:0030H PUBLIC Seg_Buf + C:000EH PUBLIC Key_Proc + D:0038H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:06C7H PUBLIC main + C:07ACH PUBLIC Timer0_Init + D:0039H PUBLIC input_data_index + D:003AH PUBLIC Key_Slow_Down + D:003BH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:003CH PUBLIC old_value + D:008EH PUBLIC AUXR + D:003EH PUBLIC input_time + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:0041H PUBLIC new_value + D:0043H PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + D:0044H PUBLIC input_data_arr + B:0020H.0 PUBLIC data_up_flag + D:0048H PUBLIC EEPROM_string_old + D:004CH PUBLIC ucLed + D:0054H PUBLIC EEPROM_string_new + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + D:0058H SYMBOL i + ------- ENDDO + C:000EH LINE# 29 + C:000EH LINE# 30 + C:000EH LINE# 33 + C:0015H LINE# 35 + C:0018H LINE# 37 + C:001DH LINE# 38 + C:0026H LINE# 39 + C:002CH LINE# 40 + C:002FH LINE# 41 + C:0038H LINE# 42 + C:0038H LINE# 44 + C:0041H LINE# 45 + C:0041H LINE# 46 + C:0072H LINE# 47 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 5 + + + C:0083H LINE# 48 + C:0094H LINE# 49 + C:0098H LINE# 50 + C:009CH LINE# 51 + C:00AAH LINE# 52 + C:00BBH LINE# 53 + C:00C1H LINE# 54 + C:00C1H LINE# 55 + C:00CCH LINE# 56 + C:00DAH LINE# 57 + C:00E5H LINE# 58 + C:00E8H LINE# 59 + C:00E8H LINE# 60 + C:00F1H LINE# 61 + C:00F1H LINE# 63 + C:00F7H LINE# 64 + C:00F7H LINE# 65 + C:0104H LINE# 66 + C:010FH LINE# 67 + C:0112H LINE# 68 + C:0112H LINE# 70 + C:0118H LINE# 71 + C:0120H LINE# 73 + C:012EH LINE# 74 + C:012EH LINE# 75 + C:016FH LINE# 76 + C:016FH LINE# 77 + C:016FH LINE# 78 + C:0176H LINE# 79 + C:0178H LINE# 80 + C:0179H LINE# 81 + C:0179H LINE# 82 + C:0180H LINE# 83 + C:0182H LINE# 84 + C:0183H LINE# 85 + C:0183H LINE# 86 + C:018AH LINE# 87 + C:018CH LINE# 88 + C:018DH LINE# 89 + C:018DH LINE# 90 + C:0194H LINE# 91 + C:0196H LINE# 92 + C:0197H LINE# 93 + C:0197H LINE# 94 + C:019EH LINE# 95 + C:01A0H LINE# 96 + C:01A1H LINE# 97 + C:01A1H LINE# 98 + C:01A8H LINE# 99 + C:01AAH LINE# 100 + C:01ABH LINE# 101 + C:01ABH LINE# 102 + C:01B2H LINE# 103 + C:01B4H LINE# 104 + C:01B5H LINE# 105 + C:01B5H LINE# 106 + C:01BCH LINE# 107 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 6 + + + C:01BEH LINE# 108 + C:01BFH LINE# 109 + C:01BFH LINE# 110 + C:01C6H LINE# 111 + C:01C8H LINE# 112 + C:01C9H LINE# 113 + C:01C9H LINE# 114 + C:01D0H LINE# 115 + C:01D2H LINE# 116 + C:01D2H LINE# 117 + C:01D2H LINE# 118 + C:01D2H LINE# 119 + C:01D2H LINE# 120 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:01D3H LINE# 122 + C:01D3H LINE# 123 + C:01D3H LINE# 125 + C:01DAH LINE# 127 + C:01DDH LINE# 128 + C:01ECH LINE# 129 + C:01ECH LINE# 130 + C:01ECH LINE# 132 + C:01F5H LINE# 133 + C:01FCH LINE# 134 + C:0202H LINE# 135 + C:0205H LINE# 136 + C:020CH LINE# 137 + C:0212H LINE# 138 + C:0215H LINE# 139 + C:021CH LINE# 140 + C:021EH LINE# 141 + C:0220H LINE# 143 + C:0220H LINE# 145 + C:0223H LINE# 146 + C:022CH LINE# 148 + C:0230H LINE# 149 + C:0230H LINE# 150 + C:023CH LINE# 151 + C:023DH LINE# 153 + C:023DH LINE# 154 + C:0245H LINE# 155 + C:0245H LINE# 156 + C:025BH LINE# 157 + C:025EH LINE# 158 + C:025EH LINE# 159 + C:025EH LINE# 160 + C:025EH LINE# 162 + C:0261H LINE# 163 + C:0267H LINE# 164 + C:026EH LINE# 165 + C:0274H LINE# 166 + C:0277H LINE# 167 + C:027EH LINE# 168 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 7 + + + C:0284H LINE# 169 + C:0284H LINE# 170 + C:0284H LINE# 171 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0632H LINE# 174 + C:0632H LINE# 175 + C:0632H LINE# 176 + C:0641H LINE# 177 + C:064FH LINE# 178 + C:065DH LINE# 180 + C:0663H LINE# 181 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:07ACH LINE# 184 + C:07ACH LINE# 185 + C:07ACH LINE# 186 + C:07AFH LINE# 187 + C:07B2H LINE# 188 + C:07B5H LINE# 189 + C:07B8H LINE# 190 + C:07BAH LINE# 191 + C:07BCH LINE# 192 + C:07BEH LINE# 193 + C:07C0H LINE# 194 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:0417H LINE# 197 + C:0434H LINE# 199 + C:043CH LINE# 200 + C:043EH LINE# 201 + C:0446H LINE# 202 + C:0448H LINE# 203 + C:0450H LINE# 204 + C:0452H LINE# 205 + C:0465H LINE# 206 + C:0471H LINE# 207 + ------- ENDPROC TIMER0_ISR + ------- PROC MAIN + C:06C7H LINE# 209 + C:06C7H LINE# 210 + C:06C7H LINE# 211 + C:06CAH LINE# 212 + C:06CDH LINE# 213 + C:06D6H LINE# 214 + C:06E4H LINE# 215 + C:06ECH LINE# 216 + C:06ECH LINE# 217 + C:06ECH LINE# 218 + C:06EFH LINE# 219 + C:06F2H LINE# 220 + C:06F5H LINE# 221 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 8 + + + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:058DH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:001EH SYMBOL temp + D:001FH SYMBOL temp_old + ------- ENDDO + C:058DH LINE# 5 + C:058DH LINE# 6 + C:058DH LINE# 10 + C:0590H LINE# 11 + C:059FH LINE# 13 + C:05ADH LINE# 14 + C:05B3H LINE# 15 + C:05B3H LINE# 16 + C:05B8H LINE# 17 + C:05C0H LINE# 18 + C:05C3H LINE# 19 + C:05C6H LINE# 20 + C:05C6H LINE# 21 + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:05C7H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0016H PUBLIC seg_wela + D:00D0H PUBLIC PSW + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 9 + + + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:05C7H LINE# 7 + C:05C7H LINE# 8 + C:05C7H LINE# 10 + C:05CAH LINE# 11 + C:05D2H LINE# 14 + C:05D9H LINE# 15 + C:05E1H LINE# 16 + C:05E4H LINE# 19 + C:05EBH LINE# 20 + C:05EEH LINE# 21 + C:05F1H LINE# 22 + C:05F9H LINE# 23 + C:05FCH LINE# 24 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:039DH PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:039DH LINE# 2 + C:039DH LINE# 3 + C:039DH LINE# 4 + C:039FH LINE# 5 + C:03A1H LINE# 6 + C:03A3H LINE# 7 + C:03A5H LINE# 8 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 10 + + + C:03A7H LINE# 9 + C:03A9H LINE# 10 + C:03ACH LINE# 11 + C:03AEH LINE# 12 + C:03B1H LINE# 13 + C:03B3H LINE# 14 + C:03B6H LINE# 15 + C:03B8H LINE# 16 + C:03BBH LINE# 17 + C:03BDH LINE# 18 + C:03BFH LINE# 19 + C:03C1H LINE# 20 + C:03C3H LINE# 21 + C:03C5H LINE# 22 + C:03C8H LINE# 23 + C:03CAH LINE# 24 + C:03CDH LINE# 25 + C:03CFH LINE# 26 + C:03D2H LINE# 27 + C:03D4H LINE# 28 + C:03D7H LINE# 29 + C:03D9H LINE# 30 + C:03DBH LINE# 31 + C:03DDH LINE# 32 + C:03DFH LINE# 33 + C:03E1H LINE# 34 + C:03E4H LINE# 35 + C:03E6H LINE# 36 + C:03E9H LINE# 37 + C:03EBH LINE# 38 + C:03EEH LINE# 39 + C:03F0H LINE# 40 + C:03F3H LINE# 41 + C:03F5H LINE# 42 + C:03F7H LINE# 43 + C:03F9H LINE# 44 + C:03FBH LINE# 45 + C:03FDH LINE# 46 + C:0400H LINE# 47 + C:0402H LINE# 48 + C:0405H LINE# 49 + C:0407H LINE# 50 + C:040AH LINE# 51 + C:040CH LINE# 52 + C:040FH LINE# 53 + C:0411H LINE# 54 + C:0413H LINE# 55 + C:0416H LINE# 56 + C:0416H LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0741H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 11 + + + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0741H LINE# 3 + C:0741H LINE# 4 + C:0741H LINE# 5 + C:0744H LINE# 6 + C:074CH LINE# 7 + C:074FH LINE# 9 + C:0752H LINE# 10 + C:075AH LINE# 11 + C:075DH LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE DS1302 + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0696H PUBLIC _Read_Rtc + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0512H PUBLIC _Set_Rtc + C:0550H PUBLIC _Read_Ds1302_Byte + B:00A0H.3 PUBLIC SDA + B:0090H.7 PUBLIC SCK + C:07C1H PUBLIC _Write_Ds1302_Byte + D:00C8H PUBLIC T2CON + C:075EH PUBLIC _Write_Ds1302 + B:0090H.3 PUBLIC RST + D:00D0H PUBLIC PSW + ------- PROC _WRITE_DS1302 + D:0007H SYMBOL temp + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:075EH LINE# 13 + C:075EH LINE# 14 + C:075EH LINE# 16 + C:076AH LINE# 17 + C:076AH LINE# 18 + C:076CH LINE# 19 + C:0770H LINE# 20 + C:0774H LINE# 21 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 12 + + + C:0776H LINE# 22 + C:0779H LINE# 23 + ------- ENDPROC _WRITE_DS1302 + ------- PROC _WRITE_DS1302_BYTE + D:0007H SYMBOL address + D:0005H SYMBOL dat + C:07C1H LINE# 26 + C:07C1H LINE# 27 + C:07C1H LINE# 28 + C:07C3H LINE# 29 + C:07C4H LINE# 30 + C:07C6H LINE# 31 + C:07C7H LINE# 32 + C:07C9H LINE# 33 + C:07CAH LINE# 34 + C:07CDH LINE# 35 + C:07D2H LINE# 36 + C:07D4H LINE# 37 + ------- ENDPROC _WRITE_DS1302_BYTE + ------- PROC _READ_DS1302_BYTE + D:0007H SYMBOL address + ------- DO + D:0007H SYMBOL i + D:0005H SYMBOL temp + ------- ENDDO + C:0550H LINE# 40 + C:0550H LINE# 41 + C:0550H LINE# 42 + C:0552H LINE# 43 + C:0554H LINE# 44 + C:0555H LINE# 45 + C:0557H LINE# 46 + C:0558H LINE# 47 + C:055AH LINE# 48 + C:055BH LINE# 49 + C:055EH LINE# 50 + C:056AH LINE# 51 + C:056AH LINE# 52 + C:056CH LINE# 53 + C:0570H LINE# 54 + C:0573H LINE# 55 + C:0576H LINE# 56 + C:0578H LINE# 57 + C:057BH LINE# 58 + C:057DH LINE# 59 + C:057EH LINE# 60 + C:0580H LINE# 61 + C:0581H LINE# 62 + C:0583H LINE# 63 + C:0584H LINE# 64 + C:0586H LINE# 65 + C:0587H LINE# 66 + C:0589H LINE# 67 + C:058AH LINE# 68 + C:058CH LINE# 69 + ------- ENDPROC _READ_DS1302_BYTE + ------- PROC _SET_RTC + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 13 + + + D:0058H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0512H LINE# 70 + C:0518H LINE# 71 + C:0518H LINE# 73 + C:051FH LINE# 74 + C:052BH LINE# 75 + C:0549H LINE# 76 + ------- ENDPROC _SET_RTC + ------- PROC _READ_RTC + D:0059H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0696H LINE# 78 + C:069CH LINE# 79 + C:069CH LINE# 81 + C:06A8H LINE# 82 + C:06C6H LINE# 83 + ------- ENDPROC _READ_RTC + ------- ENDMOD DS1302 + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:077EH SYMBOL _I2C_Delay + D:00B8H PUBLIC IP + C:06F7H PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + C:04D0H PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + C:0664H PUBLIC _EEPROM_Write + B:00A0H.0 PUBLIC scl + C:07D5H PUBLIC I2CStart + C:0794H PUBLIC _I2CSendAck + C:05FDH PUBLIC _I2CSendByte + C:072FH PUBLIC I2CWaitAck + C:07E4H PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:077AH SYMBOL L?0033 + ------- PROC L?0032 + ------- ENDPROC L?0032 + C:077AH SYMBOL L?0033 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 14 + + + C:077EH LINE# 12 + C:077EH LINE# 13 + C:077EH LINE# 15 + C:077EH LINE# 16 + C:077FH LINE# 17 + C:0780H LINE# 18 + C:0781H LINE# 19 + C:0782H LINE# 20 + C:0783H LINE# 21 + C:0784H LINE# 22 + C:0785H LINE# 23 + C:0786H LINE# 24 + C:0787H LINE# 25 + C:0788H LINE# 26 + C:0789H LINE# 27 + C:078AH LINE# 28 + C:078BH LINE# 29 + C:078CH LINE# 30 + C:078DH LINE# 31 + C:0793H LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:07D5H LINE# 35 + C:07D5H LINE# 36 + C:07D5H LINE# 37 + C:07D7H LINE# 38 + C:07D7H LINE# 39 + C:07DAH LINE# 40 + C:07DCH LINE# 41 + C:07E1H LINE# 42 + C:07E3H LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:07E4H LINE# 46 + C:07E4H LINE# 47 + C:07E4H LINE# 48 + C:07E6H LINE# 49 + C:07E6H LINE# 50 + C:07E9H LINE# 51 + C:07EBH LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:05FDH LINE# 56 + C:05FFH LINE# 57 + C:05FFH LINE# 60 + C:060BH LINE# 61 + C:060BH LINE# 62 + C:060DH LINE# 63 + C:0612H LINE# 64 + C:0616H LINE# 65 + C:0616H LINE# 66 + C:0618H LINE# 67 + C:061AH LINE# 69 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 15 + + + C:061AH LINE# 70 + C:061CH LINE# 71 + C:061CH LINE# 72 + C:0621H LINE# 73 + C:0623H LINE# 74 + C:0627H LINE# 75 + C:062CH LINE# 76 + C:062FH LINE# 78 + C:0631H LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:06F7H LINE# 82 + C:06F7H LINE# 83 + C:06F7H LINE# 86 + C:0703H LINE# 87 + C:0703H LINE# 88 + C:0703H LINE# 89 + C:0706H LINE# 90 + C:070AH LINE# 91 + C:070DH LINE# 92 + C:0710H LINE# 93 + C:0712H LINE# 94 + C:0717H LINE# 95 + C:071AH LINE# 96 + C:071CH LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + ------- PROC L?0031 + ------- ENDPROC L?0031 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:072FH LINE# 100 + C:072FH LINE# 101 + C:072FH LINE# 104 + C:072FH LINE# 105 + C:0732H LINE# 106 + C:0737H LINE# 107 + C:0739H LINE# 108 + C:073EH LINE# 110 + C:0740H LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:0794H LINE# 114 + C:0794H LINE# 115 + C:0794H LINE# 116 + C:0796H LINE# 117 + C:079BH LINE# 118 + C:07A0H LINE# 119 + C:07A0H LINE# 120 + C:07A3H LINE# 121 + C:07A5H LINE# 122 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 16 + + + C:07A7H LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _EEPROM_WRITE + D:0059H SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:005DH SYMBOL num + C:0664H LINE# 130 + C:066AH LINE# 131 + C:066AH LINE# 133 + C:066AH LINE# 134 + C:066AH LINE# 135 + C:066AH LINE# 137 + C:066AH LINE# 138 + C:066DH LINE# 139 + C:0674H LINE# 140 + C:0674H LINE# 141 + C:0689H LINE# 142 + C:068CH LINE# 143 + C:0691H LINE# 144 + C:0693H LINE# 145 + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:0058H SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:005CH SYMBOL num + C:04D0H LINE# 151 + C:04D6H LINE# 152 + C:04D6H LINE# 154 + C:04D6H LINE# 155 + C:04D6H LINE# 156 + C:04D6H LINE# 158 + C:04D6H LINE# 159 + C:04D9H LINE# 162 + C:04DCH LINE# 163 + C:04E1H LINE# 164 + C:04E4H LINE# 165 + C:04EBH LINE# 166 + C:04EBH LINE# 167 + C:0500H LINE# 168 + C:0504H LINE# 169 + C:0508H LINE# 171 + C:050DH LINE# 172 + C:050FH LINE# 173 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ?C?CLDPTR + C:0311H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CLDOPTR + C:032AH PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:0357H PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 17:23:08 PAGE 17 + + + + ------- MODULE ?C?CSTOPTR + C:0369H PUBLIC ?C?CSTOPTR + ------- ENDMOD ?C?CSTOPTR + + ------- MODULE ?C?IMUL + C:038BH PUBLIC ?C?IMUL + ------- ENDMOD ?C?IMUL + +Program Size: data=94.1 xdata=0 code=2024 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Init.obj b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Init.obj new file mode 100644 index 0000000..f30eab1 Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Init.obj differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Key.obj b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Key.obj new file mode 100644 index 0000000..dac42a4 Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Key.obj differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Led.obj b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Led.obj new file mode 100644 index 0000000..b8916a9 Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Led.obj differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Seg.obj b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Seg.obj new file mode 100644 index 0000000..4fca752 Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Seg.obj differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Uart.obj b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Uart.obj differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Ultrasonic.obj b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/Ultrasonic.obj differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/ds1302.obj b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/ds1302.obj new file mode 100644 index 0000000..619855e Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/ds1302.obj differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/iic.obj b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/iic.obj new file mode 100644 index 0000000..ff92518 Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/iic.obj differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/main.obj b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/main.obj new file mode 100644 index 0000000..05824c5 Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/main.obj differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/onewire.obj b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/onewire.obj new file mode 100644 index 0000000..772b6d9 Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/onewire.obj differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan new file mode 100644 index 0000000..7b258ed Binary files /dev/null and b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan differ diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan.build_log.htm b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..d18f2f7 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan.build_log.htm @@ -0,0 +1,42 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: VDM51.DLL V1.00 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\blue-bridge-cup-learning\ģ\4T15ģ1\4T15ģ1_77.8\User\zuolan.uvproj +Project File Date: 02/28/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling ds1302.c... +compiling iic.c... +linking... +Program Size: data=94.1 xdata=0 code=2024 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan.hex b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan.hex new file mode 100644 index 0000000..619de0e --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan.hex @@ -0,0 +1,162 @@ +:10048C00084C000000000000000008300A0A0A0AAC +:10049C000A0A0A0A082800000000000000000325D0 +:0304AC0013111118 +:10000E00E53A60030201D2753A0112039D8F21E594 +:10001E00246521FF5521F522E521F45FF523852185 +:10002E0024E522640460030200E8E54364016003F2 +:10003E000200C1AF44FE7C037DE812038BAC06AD1B +:10004E0007E54575F064A42DFDEC35F0FCE546752D +:10005E00F00AA42DFFE5F03CFE7C00EF2547F542AB +:10006E00EC3EF541E53EC4540F75F00AA4FFE53EA3 +:10007E00540F2FF554E53FC4540F75F00AA4FFE555 +:10008E003F540F2FF555E541F556E542F5577B00E8 +:10009E007A007954755D04E4FD120664D3E5429549 +:1000AE003DE541953C4003D38001C3920085413C20 +:1000BE0085423D0543E54375F0038485F043E4F541 +:1000CE0058C3E558940474809480500B744425589A +:1000DE00F8760A055880EAE4F539E54364016003D1 +:1000EE000201D2E5226405701BF558C3E55894044D +:1000FE0074809480500B74442558F8760A05588005 +:10010E00EAE4F539E53964017008FB7A00793E12AC +:10011E000696C3E53994047480948040030201D29C +:10012E00E52224FAB40D0040030201D29001487575 +:10013E00F003A4C58325F0C5837302016F0201D2BB +:10014E000201790201970201B50201D20201830276 +:10015E0001A10201BF0201D202018D0201AB020117 +:10016E00C974442539F8E4F605392274442539F862 +:10017E00760705392274442539F876080539227434 +:10018E00442539F8760905392274442539F8760460 +:10019E0005392274442539F876050539227444252B +:1001AE0039F8760605392274442539F87601053971 +:1001BE002274442539F8760205392274442539F81B +:0401CE007603053976 +:0101D200220A +:1001D300E5386003020284753801E54314603E1478 +:1001E3006079240260030202847B007A007925127D +:1001F3000696E525C4540FF530E525540FF5317502 +:10020300320BE526C4540FF533E526540FF5347548 +:10021300350BE527C4540FF536E527806075300CA0 +:1002230075330A75320A75310AE539700D75370A67 +:1002330075360A75350A75340A22E4FFEFC395391A +:10024300503FEFFDE539C39DFD74432DF8E6FEC332 +:1002530074079F2430F8A6060F80E175300D7532C0 +:100263000A75310AE53EC4540FF533E53E540FF5E4 +:100273003475350BE53FC4540FF536E53F540FF5A0 +:010283003743 +:010284002257 +:10063200AF437E00EF70047D0180027D008D4CEFA0 +:1006420064014E70047F0180027F008F4DE5436498 +:100652000270047F0180027F008F4EA200E433F516 +:020662004F2225 +:1007AC00538E7F5389F0758A18758CFCC28DD28C50 +:0507BC00D2A9D2AF221A +:03000B00020417D5 +:10041700C0E0C0F0C083C082C0D075D000C000C0AB +:1004270001C002C003C004C005C006C007053AE505 +:100437003A640A7002F53A0538E53864C87002F57F +:1004470038053BE53B64087002F53B7430253BF803 +:10045700E6FD7428253BF8E6FBAF3B1205C7744C55 +:10046700253BF8E6FDAF3B12058DD007D006D0053A +:10047700D004D003D002D001D000D0D0D082D08316 +:05048700D0F0D0E032CE +:1006C7001207411207AC7B007A0079251205127BCD +:1006D700007A007948755C04E4FD1204D0E54AF518 +:1006E7003CE54BF53D12000E1201D312063280F5A0 +:0604AF00011E00011FFF09 +:10058D00ED600FA8077401088002C333D8FC421E2A +:10059D00800EA8077401088002C333D8FCF4521EE4 +:1005AD00E51E651F6013E51EF4F580E5A0541F449C +:0905BD0080F5A053A01F851E1F4C +:0105C6002212 +:1004B5000E08C0F9A4B0999282F88090FFBFC68655 +:0A04C5000816010204081020408010 +:1005C7007580FFE5A0541F44E0F5A074162FF8E6E8 +:1005D700F580E5A0541F44C0F5A053A01F74082D53 +:1005E700F8E6F580EB600353807FE5A0541F44E0F5 +:0605F700F5A053A01F2235 +:10039D00E4FFC2A9C2C4D2C2D2B5D2B420B3027F87 +:1003AD000420B2027F0520B1027F0620B0027F0734 +:1003BD00D2C4C2C2D2B5D2B420B3027F0820B202D9 +:1003CD007F0920B1027F0A20B0027F0BD2C4D2C2B6 +:1003DD00C2B5D2B420B3027F0C20B2027F0D20B182 +:1003ED00027F0E20B0027F0FD2C4D2C2D2B5C2B4EA +:1003FD0020B3027F1020B2027F1120B1027F1220A4 +:09040D00B0027F13D2A975B0FF03 +:0104160022C3 +:100741007580FFE5A0541F4480F5A053A01FE4F578 +:0D07510080E5A0541F44A0F5A053A01F2276 +:10075E00E4FEEEC3940874809480500FC297EF139A +:0B076E0092A3EFC313FFD2970E80E7A9 +:01077900225D +:1007C100C29300C29700D2930012075EAF051207D1 +:0407D1005EC293224F +:10055000E4FDC29300C29700D2930012075EE4FF4D +:10056000EFC39408748094805011C297EDC313FDBB +:1005700030A303430580D2970F80E5C29300C29752 +:0C05800000D29700C2A300D2A300AF0578 +:01058C00224C +:060512008B588A59895A3A +:10051800E4FD7F8E1207C1E4FCECC394037480945D +:1005280080501EEC25E0FFC374849FFFAB58AA5986 +:10053800A95A8C8275830012032AFD1207C10C8008 +:08054800D87D807F8E0207C1FF +:060696008B598A5A895BB2 +:10069C00E4FCECC3940374809480501EEC25E0FFC2 +:1006AC00C374859FFF120550AB59AA5AA95B8C8263 +:0A06BC00758300EF1203690C80D86B +:0106C6002211 +:04077A00D2A07F0585 +:10077E00000000000000000000000000000000AEBD +:06078E00071FEE70EB22D4 +:0F07D500D2A112077AC2A17F0512077EC2A0220D +:0C07E400C2A112077AD2A17F0502077E95 +:0205FD00AD0748 +:1005FF00E4FCECC39408748094805024C2A07F055F +:10060F0012077EED30E704D2A18002C2A17F05124E +:10061F00077ED2A0ED25E0FD7F0512077E0C80D26C +:02062F00C2A067 +:0106310022A6 +:1006F700E4FCECC3940874809480501712077AEDD9 +:1007070025E0FD30A103430501C2A07F0512077E46 +:050717000C80DFAF05BE +:01071C0022BA +:10071D00AB051207D57FA01205FD12072FAF0312EF +:02072D0005FDC8 +:10072F0012077AA2A1E433FDC2A07F0512077EAFA4 +:01073F0005B4 +:010740002296 +:10079400C2A0EF24FF92A17F0512077E12077AC23E +:0807A400A0D2A17F0502077E2F +:100664008B598A5A895B12071DAF5D155DEF601FB8 +:10067400AB59055BE55BAA5A7002055A14F91203DB +:1006840011FF1205FD12072F7FC812077E80DA02C0 +:0206940007E479 +:1004D0008B588A59895A12071D1207D57FA1120518 +:1004E000FD12072FAF5C155CEF60241206F7AB58C6 +:1004F000055AE55AAA597002055914F9EF12035723 +:10050000E55C6004E4FF80027F0112079480D5025D +:0205100007E4FE +:0300000002028574 +:0C028500787FE4F6D8FD75815D0202CCA4 +:10031100BB010689828A83E0225002E722BBFE02EA +:09032100E32289828A83E493221D +:10032A00BB010CE58229F582E5833AF583E0225088 +:10033A0006E92582F8E622BBFE06E92582F8E222D2 +:0D034A00E58229F582E5833AF583E49322EC +:10035700BB010689828A83F0225002F722BBFE0185 +:02036700F3227F +:10036900F8BB010DE58229F582E5833AF583E8F0CA +:10037900225006E92582C8F622BBFE05E92582C876 +:02038900F2225E +:10038B00EF8DF0A4A8F0CF8CF0A428CE8DF0A42E86 +:02039B00FE2240 +:100291000206C7E493A3F8E493A34003F68001F2B6 +:1002A10008DFF48029E493A3F85407240CC8C3336E +:1002B100C4540F4420C8834004F456800146F6DF3D +:1002C100E4800B010204081020408090048CE47E3D +:1002D100019360BCA3FF543F30E509541FFEE49332 +:1002E100A360010ECF54C025E060A840B8E493A3F9 +:1002F100FAE493A3F8E493A3C8C582C8CAC583CA24 +:10030100F0A3C8C582C8CAC583CADFE9DEE780BEDB +:0104CF00002C +:00000001FF diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan.lnp b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan.lnp new file mode 100644 index 0000000..a92f795 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/Objects/zuolan.lnp @@ -0,0 +1,9 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\ds1302.obj", +".\Objects\iic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/main.c b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/main.c new file mode 100644 index 0000000..1ad1bb7 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/main.c @@ -0,0 +1,222 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ʱ䷽ */ +uchar ucRtc[3] = {0x13, 0x11, 0x11}; // ʼʱ13:11:11 +uchar input_time[3]; // ݵʱ +/* ̷ */ +uchar Key_Slow_Down; + +/* ʾ */ +uchar Seg_show_mode; // 0 ʱ 1 2 ¼ + +/* */ +uchar input_data_arr[4]; // λ +uchar input_data_index; // ݵ +uint new_value; +uint old_value; +uchar EEPROM_string_new[4]; +uchar EEPROM_string_old[4]; +bit data_up_flag; // ־ +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + uchar i; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 4) + { + // 水лݽд룬ォµֵ + if (Seg_show_mode == 1) + { + new_value = input_data_arr[0] * 1000 + input_data_arr[1] * 100 + input_data_arr[2] * 10 + input_data_arr[3]; + EEPROM_string_new[0] = input_time[0] / 16 * 10 + input_time[0] % 16; + EEPROM_string_new[1] = input_time[1] / 16 * 10 + input_time[1] % 16; + EEPROM_string_new[2] = new_value >> 8; + EEPROM_string_new[3] = new_value & 0x00ff; + EEPROM_Write(EEPROM_string_new, 0, 4); + data_up_flag = (new_value > old_value); + old_value = new_value; + } + Seg_show_mode = (++Seg_show_mode) % 3; + for (i = 0; i < 4; i++) + input_data_arr[i] = 10; // ֱӶӦÿνнлʱһ + input_data_index = 0; // + } + if (Seg_show_mode == 1) + { + // + if (Key_Down == 5) + { + for (i = 0; i < 4; i++) + input_data_arr[i] = 10; // ֱӶӦÿνнлʱһ + input_data_index = 0; // + } + // һλ + if (input_data_index == 1) + Read_Rtc(input_time); + // ݲλʱ + if (input_data_index < 4) + { + switch (Key_Down) + { + case 6: + input_data_arr[input_data_index] = 0; + input_data_index++; + break; + case 8: + input_data_arr[input_data_index] = 7; + input_data_index++; + break; + case 12: + input_data_arr[input_data_index] = 8; + input_data_index++; + break; + case 16: + input_data_arr[input_data_index] = 9; + input_data_index++; + break; + case 9: + input_data_arr[input_data_index] = 4; + input_data_index++; + break; + case 13: + input_data_arr[input_data_index] = 5; + input_data_index++; + break; + case 17: + input_data_arr[input_data_index] = 6; + input_data_index++; + break; + case 10: + input_data_arr[input_data_index] = 1; + input_data_index++; + break; + case 14: + input_data_arr[input_data_index] = 2; + input_data_index++; + break; + case 18: + input_data_arr[input_data_index] = 3; + input_data_index++; + break; + } + } + } +} +/* ܴ */ +void Seg_Proc() +{ + uchar i; + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + switch (Seg_show_mode) + { + case 0: + /* ʱ */ + Read_Rtc(ucRtc); + Seg_Buf[0] = ucRtc[0] / 16; + Seg_Buf[1] = ucRtc[0] % 16; + Seg_Buf[2] = 11; //- + Seg_Buf[3] = ucRtc[1] / 16; + Seg_Buf[4] = ucRtc[1] % 16; + Seg_Buf[5] = 11; //- + Seg_Buf[6] = ucRtc[2] / 16; + Seg_Buf[7] = ucRtc[2] % 16; + break; + + case 1: + /* */ + Seg_Buf[0] = 12; // C + Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = 10; + // ûʱֱǿյ + if (input_data_index == 0) + { + Seg_Buf[4] = Seg_Buf[5] = Seg_Buf[6] = Seg_Buf[7] = 10; + } + else + { + for (i = 0; i < input_data_index; i++) + { + Seg_Buf[7 - i] = input_data_arr[input_data_index - i - 1]; + } + } + break; + case 2: + /* ¼ */ + Seg_Buf[0] = 13; // E + Seg_Buf[1] = Seg_Buf[2] = 10; + Seg_Buf[3] = input_time[0] / 16; + Seg_Buf[4] = input_time[0] % 16; + Seg_Buf[5] = 11; //- + Seg_Buf[6] = input_time[1] / 16; + Seg_Buf[7] = input_time[1] % 16; + break; + } +} + +/* LED */ +void Led_Proc() +{ + ucLed[0] = (Seg_show_mode == 0); + ucLed[1] = (Seg_show_mode == 1); + ucLed[2] = (Seg_show_mode == 2); + + ucLed[3] = data_up_flag; +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 200) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void main() +{ + System_Init(); + Timer0_Init(); + Set_Rtc(ucRtc); + EEPROM_Read(EEPROM_string_old, 0, 4); + old_value = EEPROM_string_old[2] << 8 | EEPROM_string_old[3]; + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/main.h b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/main.h new file mode 100644 index 0000000..1fb7ddc --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/main.h @@ -0,0 +1,12 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "ds1302.h" +#include "iic.h" +#include "intrins.h" +#include "Init.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/zuolan.uvgui.haze b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/zuolan.uvgui.haze new file mode 100644 index 0000000..56e4fc8 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/zuolan.uvgui.haze @@ -0,0 +1,1369 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 2 + + -32000 + -32000 + + + -1 + -1 + + + 9 + 9 + 1543 + 823 + + + + 0 + + 363 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF62433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CC4A3C4E2CCE25C34543135BDECC4A3C4E2315C34543135BDECC4A3C4E2315FD7F3E1B037372E385C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000009484FFFF4F83FFFF0089FFFF1F85FFFF + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + A50100007700000081040000E4000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000370200000006000006030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000EB050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000EB050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000EB050000ED020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000060300000006000019030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000A50100007700000081040000E4000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000F10200007700000081040000C8010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100001F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000001100000077000000A101000035020000000000004F000000900100001F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000011000000B801000081040000390200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000001F020000000600002302000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B401000077940000018000800000010000001100000039020000FF0500001C030000000000002302000000060000060300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2096 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000C524541445F6F6E6577697265960000000000000005000C524541445F6F6E6577697265094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E67650000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 1 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 31 + 3 + 27 + 1 + + 0 + + + .\main.c + 79 + 34 + 47 + 1 + + 0 + + + + +
diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/zuolan.uvopt b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/zuolan.uvopt new file mode 100644 index 0000000..8cefae4 --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/zuolan.uvopt @@ -0,0 +1,258 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 11 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\ds1302.c + ds1302.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + +
diff --git a/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/zuolan.uvproj b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/zuolan.uvproj new file mode 100644 index 0000000..0685e7c --- /dev/null +++ b/题目/模拟题/4T15届模拟1_左岚85/4T15届模拟1_左岚85/User/zuolan.uvproj @@ -0,0 +1,410 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 11 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + ds1302.c + 1 + ..\Driver\ds1302.c + + + iic.c + 1 + ..\Driver\iic.c + + + + + + + +
diff --git a/题目/模拟题/4T15届模拟2_左岚85.zip b/题目/模拟题/4T15届模拟2_左岚85.zip new file mode 100644 index 0000000..4cec1a3 Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85.zip differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2.png b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2.png new file mode 100644 index 0000000..716bda5 Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2.png differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/.vscode/settings.json b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/.vscode/settings.json new file mode 100644 index 0000000..e25b9c7 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/.vscode/settings.json @@ -0,0 +1,14 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c" + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Init.c b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Init.h b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Key.c b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Key.h b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Led.c b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Led.c new file mode 100644 index 0000000..4749a48 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Led.c @@ -0,0 +1,21 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Led.h b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Led.h new file mode 100644 index 0000000..e50c9a7 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Led.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Seg.c b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Seg.c new file mode 100644 index 0000000..3fb64d6 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 U +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xc1}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Seg.h b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/iic.c b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/iic.c new file mode 100644 index 0000000..40796ea --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/iic.c @@ -0,0 +1,156 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + I2CStart(); + I2CSendByte(0x91); + I2CWaitAck(); + temp = I2CReceiveByte(); + I2CSendAck(1); + I2CStop(); + return temp; +} +// 写入的值是数字值0-255,而不是模拟值 +void Da_Write(unsigned char dat) +{ + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/iic.h b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/iic.h new file mode 100644 index 0000000..a925af9 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/iic.h @@ -0,0 +1,5 @@ +#include "STC15F2K60S2.H" +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/onewire.c b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/onewire.c new file mode 100644 index 0000000..d00f0e8 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/onewire.c @@ -0,0 +1,85 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "REG52.H" +sbit DQ = P1 ^ 4; // 单总线数据口 +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0x44); // 启动温度转换 + + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0xbe); // 读取温度值 + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/onewire.h b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/Driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Init.lst b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Init.lst new file mode 100644 index 0000000..e2b5aaf --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 02/29/2024 16:09:24 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Key.lst b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Key.lst new file mode 100644 index 0000000..859d208 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 02/29/2024 16:09:23 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 02/29/2024 16:09:23 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Led.lst b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Led.lst new file mode 100644 index 0000000..bd2ac9f --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Led.lst @@ -0,0 +1,45 @@ +C51 COMPILER V9.59.0.0 LED 02/29/2024 16:09:23 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 58 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 2 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Seg.lst b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Seg.lst new file mode 100644 index 0000000..198a5e5 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 02/29/2024 16:09:23 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 U + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xc1}; + 4 // λѡ + 5 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 20 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Uart.lst b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Ultrasonic.lst b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/ds1302.lst b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/iic.lst b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/iic.lst new file mode 100644 index 0000000..7c5ae5c --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/iic.lst @@ -0,0 +1,185 @@ +C51 COMPILER V9.59.0.0 IIC 02/29/2024 16:09:24 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 02/29/2024 16:09:24 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 02/29/2024 16:09:24 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 255 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/main.lst b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/main.lst new file mode 100644 index 0000000..1a41d6d --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/main.lst @@ -0,0 +1,201 @@ +C51 COMPILER V9.59.0.0 MAIN 02/29/2024 16:09:23 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ʱ䷽ */ + 12 uchar ucRtc[3] = {0x13, 0x11, 0x11}; // ʼʱ13:11:11 + 13 + 14 /* ̷ */ + 15 uchar Key_Slow_Down; + 16 + 17 /* ʾ */ + 18 uchar Seg_show_mode; // 0 ģʽ 1 + 19 uchar Control_mode; + 20 + 21 /* */ + 22 uint temperature_value_10x; + 23 uchar light_value; + 24 uchar DAC_out_dig; // 0-255 + 25 uchar DAC_out_ana_10x; // ģ0-50 + 26 /* ̴ */ + 27 void Key_Proc() + 28 { + 29 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 30 1 if (Key_Slow_Down) + 31 1 return; + 32 1 Key_Slow_Down = 1; + 33 1 + 34 1 Key_Val = Key_Read(); + 35 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 36 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 37 1 Key_Old = Key_Val; + 38 1 if (Key_Down == 4) + 39 1 Control_mode = (++Control_mode) % 2; + 40 1 if (Key_Down == 5) + 41 1 Seg_show_mode = (++Seg_show_mode) % 2; + 42 1 } + 43 /* ܴ */ + 44 void Seg_Proc() + 45 { + 46 1 if (Seg_Slow_Down) + 47 1 return; + 48 1 Seg_Slow_Down = 1; + 49 1 temperature_value_10x = rd_temperature() * 10; + 50 1 light_value = Ad_Read(0x41); + 51 1 DAC_out_dig = DAC_out_ana_10x * 51 / 10; + 52 1 Da_Write(DAC_out_dig); + 53 1 switch (Seg_show_mode) + 54 1 { + C51 COMPILER V9.59.0.0 MAIN 02/29/2024 16:09:23 PAGE 2 + + 55 2 case 0: + 56 2 /* ģʽ */ + 57 2 Seg_Buf[0] = Control_mode + 1; + 58 2 Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 59 2 if (Control_mode == 0) + 60 2 { + 61 3 + 62 3 Seg_Buf[5] = temperature_value_10x / 100 % 10; + 63 3 Seg_Buf[6] = temperature_value_10x / 10 % 10; + 64 3 Seg_Buf[7] = temperature_value_10x % 10; + 65 3 Seg_Point[6] = 1; + 66 3 } + 67 2 else + 68 2 { + 69 3 Seg_Buf[5] = (light_value / 100 % 10 == 0) ? 10 : light_value / 100 % 10; + 70 3 Seg_Buf[6] = ((light_value / 10 % 10 == 0) && (Seg_Buf[5] == 10)) ? 10 : light_value / 10 % 10 + -; + 71 3 Seg_Buf[7] = light_value % 10; + 72 3 Seg_Point[6] = 0; + 73 3 } + 74 2 break; + 75 2 + 76 2 case 1: + 77 2 /* */ + 78 2 Seg_Buf[0] = 11; // U + 79 2 + 80 2 Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + 81 2 Seg_Buf[6] = DAC_out_ana_10x / 10 % 10; + 82 2 Seg_Buf[7] = DAC_out_ana_10x % 10; + 83 2 Seg_Point[6] = 1; + 84 2 break; + 85 2 } + 86 1 } + 87 + 88 /* LED */ + 89 void Led_Proc() + 90 { + 91 1 if (Control_mode == 0) + 92 1 { + 93 2 if (temperature_value_10x >= 400) + 94 2 DAC_out_ana_10x = 50; + 95 2 else if (temperature_value_10x <= 100) + 96 2 DAC_out_ana_10x = 10; + 97 2 else + 98 2 DAC_out_ana_10x = + 99 2 (temperature_value_10x - 100) * 2 / 15 + 10; + 100 2 } + 101 1 else + 102 1 { + 103 2 if (light_value >= 240) + 104 2 DAC_out_ana_10x = 50; + 105 2 else if (light_value <= 10) + 106 2 DAC_out_ana_10x = 10; + 107 2 else + 108 2 DAC_out_ana_10x = + 109 2 (light_value - 10) * 4 / 23 + 10; + 110 2 } + 111 1 ucLed[0] = (Control_mode == 0); + 112 1 ucLed[1] = (Control_mode == 1); + 113 1 } + 114 + 115 /* ʱ0жϳʼ */ + C51 COMPILER V9.59.0.0 MAIN 02/29/2024 16:09:23 PAGE 3 + + 116 void Timer0_Init(void) // 1@12.000MHz + 117 { + 118 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 119 1 TMOD &= 0xF0; // öʱģʽ + 120 1 TL0 = 0x18; // öʱʼֵ + 121 1 TH0 = 0xFC; // öʱʼֵ + 122 1 TF0 = 0; // TF0־ + 123 1 TR0 = 1; // ʱ0ʼʱ + 124 1 ET0 = 1; + 125 1 EA = 1; + 126 1 } + 127 + 128 /* ʱ0жϺ */ + 129 void Timer0_ISR(void) interrupt 1 + 130 { + 131 1 if (++Key_Slow_Down == 10) + 132 1 Key_Slow_Down = 0; + 133 1 if (++Seg_Slow_Down == 200) + 134 1 Seg_Slow_Down = 0; + 135 1 if (++Seg_Pos == 8) + 136 1 Seg_Pos = 0; + 137 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 138 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 139 1 } + 140 void Delay750ms(void) //@12.000MHz + 141 { + 142 1 unsigned char data i, j, k; + 143 1 + 144 1 _nop_(); + 145 1 _nop_(); + 146 1 i = 35; + 147 1 j = 51; + 148 1 k = 182; + 149 1 do + 150 1 { + 151 2 do + 152 2 { + 153 3 while (--k) + 154 3 ; + 155 3 } while (--j); + 156 2 } while (--i); + 157 1 } + 158 void main() + 159 { + 160 1 System_Init(); + 161 1 Timer0_Init(); + 162 1 Delay750ms(); + 163 1 rd_temperature(); + 164 1 while (1) + 165 1 { + 166 2 Key_Proc(); + 167 2 Seg_Proc(); + 168 2 Led_Proc(); + 169 2 } + 170 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 639 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + C51 COMPILER V9.59.0.0 MAIN 02/29/2024 16:09:23 PAGE 4 + + DATA SIZE = 41 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/onewire.lst b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/onewire.lst new file mode 100644 index 0000000..e6371d3 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/29/2024 16:09:24 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/29/2024 16:09:24 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/zuolan.m51 b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/zuolan.m51 new file mode 100644 index 0000000..0751ee2 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Listings/zuolan.m51 @@ -0,0 +1,913 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\iic.obj, .\Objects\onewire.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\iic.obj (IIC) + .\Objects\onewire.obj (ONEWIRE) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0014H UNIT ?DT?SEG + DATA 001CH 0002H UNIT ?DT?LED + 001EH 0002H *** GAP *** + BIT 0020H.0 0000H.1 UNIT _BIT_GROUP_ + 0020H.1 0000H.7 *** GAP *** + DATA 0021H 0029H UNIT ?DT?MAIN + IDATA 004AH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + 0003H 0008H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0228H UNIT ?C?LIB_CODE + CODE 0236H 00FCH UNIT ?PR?SEG_PROC?MAIN + CODE 0332H 0095H UNIT ?PR?LED_PROC?MAIN + CODE 03C7H 008CH UNIT ?C_C51STARTUP + CODE 0453H 007AH UNIT ?PR?KEY_READ?KEY + CODE 04CDH 0075H UNIT ?PR?TIMER0_ISR?MAIN + CODE 0542H 0042H UNIT ?C_INITSEG + CODE 0584H 003EH UNIT ?PR?KEY_PROC?MAIN + CODE 05C2H 003AH UNIT ?PR?_LED_DISP?LED + CODE 05FCH 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 0632H 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 0667H 0034H UNIT ?PR?RD_TEMPERATURE?ONEWIRE + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 2 + + + CODE 069BH 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 06C2H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 06E9H 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 070FH 0025H UNIT ?PR?_AD_READ?IIC + CODE 0734H 0023H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0757H 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 0775H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0792H 001DH UNIT ?PR?I2CWAITACK?IIC + CODE 07AFH 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 07C9H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 07E1H 0017H UNIT ?PR?MAIN?MAIN + CODE 07F8H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 080DH 0015H UNIT ?PR?_DA_WRITE?IIC + CODE 0822H 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 0831H 000FH UNIT ?PR?I2CSTART?IIC + CODE 0840H 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP + +--> CALLED SEGMENT START LENGTH +-------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.0 0000H.1 + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 3 + + + +?PR?KEY_PROC?MAIN ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN ----- ----- + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?_AD_READ?IIC + +--> ?PR?_DA_WRITE?IIC + +?PR?_AD_READ?IIC ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CWAITACK?IIC ----- ----- + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDACK?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_DA_WRITE?IIC ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?I2CSTOP?IIC + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:04CDH PUBLIC Timer0_ISR + D:0025H PUBLIC ucRtc + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 4 + + + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0332H PUBLIC Led_Proc + D:0028H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:0236H PUBLIC Seg_Proc + D:0030H PUBLIC DAC_out_dig + D:00B8H PUBLIC IP + D:0031H PUBLIC light_value + D:0032H PUBLIC Seg_Buf + C:0584H PUBLIC Key_Proc + D:003AH PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:07E1H PUBLIC main + C:07F8H PUBLIC Timer0_Init + D:003BH PUBLIC Key_Slow_Down + D:003CH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:003DH PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:003EH PUBLIC DAC_out_ana_10x + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + D:003FH PUBLIC Control_mode + D:0040H PUBLIC ucLed + C:0822H PUBLIC Delay750ms + D:0048H PUBLIC temperature_value_10x + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:0584H LINE# 27 + C:0584H LINE# 28 + C:0584H LINE# 30 + C:0588H LINE# 32 + C:058BH LINE# 34 + C:0590H LINE# 35 + C:0599H LINE# 36 + C:059FH LINE# 37 + C:05A2H LINE# 38 + C:05ABH LINE# 39 + C:05B3H LINE# 40 + C:05B9H LINE# 41 + C:05C1H LINE# 42 + ------- ENDPROC KEY_PROC + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 5 + + + ------- PROC SEG_PROC + C:0236H LINE# 44 + C:0236H LINE# 45 + C:0236H LINE# 46 + C:023DH LINE# 48 + C:0240H LINE# 49 + C:0254H LINE# 50 + C:025BH LINE# 51 + C:026DH LINE# 52 + C:0270H LINE# 53 + C:027EH LINE# 54 + C:027EH LINE# 55 + C:027EH LINE# 57 + C:0283H LINE# 58 + C:028FH LINE# 59 + C:0293H LINE# 60 + C:0293H LINE# 62 + C:02A6H LINE# 63 + C:02BAH LINE# 64 + C:02C7H LINE# 65 + C:02C7H LINE# 66 + C:02C9H LINE# 68 + C:02C9H LINE# 69 + C:02DEH LINE# 70 + C:02F9H LINE# 71 + C:0302H LINE# 72 + C:0305H LINE# 73 + C:0305H LINE# 74 + C:0306H LINE# 76 + C:0306H LINE# 78 + C:0309H LINE# 80 + C:0318H LINE# 81 + C:0325H LINE# 82 + C:032EH LINE# 83 + C:0331H LINE# 84 + C:0331H LINE# 85 + C:0331H LINE# 86 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0332H LINE# 89 + C:0332H LINE# 90 + C:0332H LINE# 91 + C:0339H LINE# 92 + C:0339H LINE# 93 + C:0344H LINE# 94 + C:0346H LINE# 95 + C:0351H LINE# 96 + C:0353H LINE# 98 + C:0368H LINE# 100 + C:036AH LINE# 102 + C:036AH LINE# 103 + C:0378H LINE# 104 + C:037DH LINE# 105 + C:0388H LINE# 106 + C:038DH LINE# 108 + C:03ACH LINE# 110 + C:03ACH LINE# 111 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 6 + + + C:03B8H LINE# 112 + C:03C6H LINE# 113 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:07F8H LINE# 116 + C:07F8H LINE# 117 + C:07F8H LINE# 118 + C:07FBH LINE# 119 + C:07FEH LINE# 120 + C:0801H LINE# 121 + C:0804H LINE# 122 + C:0806H LINE# 123 + C:0808H LINE# 124 + C:080AH LINE# 125 + C:080CH LINE# 126 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:04CDH LINE# 129 + C:04EAH LINE# 131 + C:04F2H LINE# 132 + C:04F4H LINE# 133 + C:04FCH LINE# 134 + C:04FEH LINE# 135 + C:0506H LINE# 136 + C:0508H LINE# 137 + C:051BH LINE# 138 + C:0527H LINE# 139 + ------- ENDPROC TIMER0_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0822H LINE# 140 + C:0822H LINE# 141 + C:0822H LINE# 144 + C:0823H LINE# 145 + C:0824H LINE# 146 + C:0826H LINE# 147 + C:0828H LINE# 148 + C:082AH LINE# 150 + C:082AH LINE# 152 + C:082AH LINE# 153 + C:082CH LINE# 155 + C:082EH LINE# 156 + C:0830H LINE# 157 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:07E1H LINE# 158 + C:07E1H LINE# 159 + C:07E1H LINE# 160 + C:07E4H LINE# 161 + C:07E7H LINE# 162 + C:07EAH LINE# 163 + C:07EDH LINE# 164 + C:07EDH LINE# 165 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 7 + + + C:07EDH LINE# 166 + C:07F0H LINE# 167 + C:07F3H LINE# 168 + C:07F6H LINE# 169 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:05C2H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:001CH SYMBOL temp + D:001DH SYMBOL temp_old + ------- ENDDO + C:05C2H LINE# 5 + C:05C2H LINE# 6 + C:05C2H LINE# 10 + C:05C5H LINE# 11 + C:05D4H LINE# 13 + C:05E2H LINE# 14 + C:05E8H LINE# 15 + C:05E8H LINE# 16 + C:05EDH LINE# 17 + C:05F5H LINE# 18 + C:05F8H LINE# 19 + C:05FBH LINE# 20 + C:05FBH LINE# 21 + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 8 + + + D:00A8H PUBLIC IE + C:05FCH PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0014H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:05FCH LINE# 6 + C:05FCH LINE# 7 + C:05FCH LINE# 9 + C:05FFH LINE# 10 + C:0607H LINE# 13 + C:060EH LINE# 14 + C:0616H LINE# 15 + C:0619H LINE# 18 + C:0620H LINE# 19 + C:0623H LINE# 20 + C:0626H LINE# 21 + C:062EH LINE# 22 + C:0631H LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0453H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 9 + + + D:0007H SYMBOL temp + ------- ENDDO + C:0453H LINE# 2 + C:0453H LINE# 3 + C:0453H LINE# 4 + C:0455H LINE# 5 + C:0457H LINE# 6 + C:0459H LINE# 7 + C:045BH LINE# 8 + C:045DH LINE# 9 + C:045FH LINE# 10 + C:0462H LINE# 11 + C:0464H LINE# 12 + C:0467H LINE# 13 + C:0469H LINE# 14 + C:046CH LINE# 15 + C:046EH LINE# 16 + C:0471H LINE# 17 + C:0473H LINE# 18 + C:0475H LINE# 19 + C:0477H LINE# 20 + C:0479H LINE# 21 + C:047BH LINE# 22 + C:047EH LINE# 23 + C:0480H LINE# 24 + C:0483H LINE# 25 + C:0485H LINE# 26 + C:0488H LINE# 27 + C:048AH LINE# 28 + C:048DH LINE# 29 + C:048FH LINE# 30 + C:0491H LINE# 31 + C:0493H LINE# 32 + C:0495H LINE# 33 + C:0497H LINE# 34 + C:049AH LINE# 35 + C:049CH LINE# 36 + C:049FH LINE# 37 + C:04A1H LINE# 38 + C:04A4H LINE# 39 + C:04A6H LINE# 40 + C:04A9H LINE# 41 + C:04ABH LINE# 42 + C:04ADH LINE# 43 + C:04AFH LINE# 44 + C:04B1H LINE# 45 + C:04B3H LINE# 46 + C:04B6H LINE# 47 + C:04B8H LINE# 48 + C:04BBH LINE# 49 + C:04BDH LINE# 50 + C:04C0H LINE# 51 + C:04C2H LINE# 52 + C:04C5H LINE# 53 + C:04C7H LINE# 54 + C:04C9H LINE# 55 + C:04CCH LINE# 56 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 10 + + + C:04CCH LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0775H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0775H LINE# 3 + C:0775H LINE# 4 + C:0775H LINE# 5 + C:0778H LINE# 6 + C:0780H LINE# 7 + C:0783H LINE# 9 + C:0786H LINE# 10 + C:078EH LINE# 11 + C:0791H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:070FH PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:07B3H SYMBOL _I2C_Delay + C:080DH PUBLIC _Da_Write + D:00B8H PUBLIC IP + C:06E9H PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + B:00A0H.0 PUBLIC scl + C:0831H PUBLIC I2CStart + C:07C9H PUBLIC _I2CSendAck + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 11 + + + C:0632H PUBLIC _I2CSendByte + C:079DH PUBLIC I2CWaitAck + C:0840H PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:07AFH SYMBOL L?0024 + ------- PROC L?0023 + ------- ENDPROC L?0023 + C:07AFH SYMBOL L?0024 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:07B3H LINE# 12 + C:07B3H LINE# 13 + C:07B3H LINE# 15 + C:07B3H LINE# 16 + C:07B4H LINE# 17 + C:07B5H LINE# 18 + C:07B6H LINE# 19 + C:07B7H LINE# 20 + C:07B8H LINE# 21 + C:07B9H LINE# 22 + C:07BAH LINE# 23 + C:07BBH LINE# 24 + C:07BCH LINE# 25 + C:07BDH LINE# 26 + C:07BEH LINE# 27 + C:07BFH LINE# 28 + C:07C0H LINE# 29 + C:07C1H LINE# 30 + C:07C2H LINE# 31 + C:07C8H LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:0831H LINE# 35 + C:0831H LINE# 36 + C:0831H LINE# 37 + C:0833H LINE# 38 + C:0833H LINE# 39 + C:0836H LINE# 40 + C:0838H LINE# 41 + C:083DH LINE# 42 + C:083FH LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:0840H LINE# 46 + C:0840H LINE# 47 + C:0840H LINE# 48 + C:0842H LINE# 49 + C:0842H LINE# 50 + C:0845H LINE# 51 + C:0847H LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0632H LINE# 56 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 12 + + + C:0634H LINE# 57 + C:0634H LINE# 60 + C:0640H LINE# 61 + C:0640H LINE# 62 + C:0642H LINE# 63 + C:0647H LINE# 64 + C:064BH LINE# 65 + C:064BH LINE# 66 + C:064DH LINE# 67 + C:064FH LINE# 69 + C:064FH LINE# 70 + C:0651H LINE# 71 + C:0651H LINE# 72 + C:0656H LINE# 73 + C:0658H LINE# 74 + C:065CH LINE# 75 + C:0661H LINE# 76 + C:0664H LINE# 78 + C:0666H LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:06E9H LINE# 82 + C:06E9H LINE# 83 + C:06E9H LINE# 86 + C:06F5H LINE# 87 + C:06F5H LINE# 88 + C:06F5H LINE# 89 + C:06F8H LINE# 90 + C:06FCH LINE# 91 + C:06FFH LINE# 92 + C:0702H LINE# 93 + C:0704H LINE# 94 + C:0709H LINE# 95 + C:070CH LINE# 96 + C:070EH LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + ------- PROC L?0022 + ------- ENDPROC L?0022 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:079DH LINE# 100 + C:079DH LINE# 101 + C:079DH LINE# 104 + C:079DH LINE# 105 + C:07A0H LINE# 106 + C:07A5H LINE# 107 + C:07A7H LINE# 108 + C:07ACH LINE# 110 + C:07AEH LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 13 + + + D:0007H SYMBOL ackbit + C:07C9H LINE# 114 + C:07C9H LINE# 115 + C:07C9H LINE# 116 + C:07CBH LINE# 117 + C:07D0H LINE# 118 + C:07D5H LINE# 119 + C:07D5H LINE# 120 + C:07D8H LINE# 121 + C:07DAH LINE# 122 + C:07DCH LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:070FH LINE# 126 + C:0711H LINE# 127 + C:0711H LINE# 130 + C:0714H LINE# 131 + C:0716H LINE# 132 + C:0716H LINE# 133 + C:0716H LINE# 134 + C:0719H LINE# 135 + C:071CH LINE# 136 + C:0721H LINE# 137 + C:0724H LINE# 138 + C:0729H LINE# 139 + C:072EH LINE# 140 + C:0731H LINE# 141 + C:0733H LINE# 142 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:080DH LINE# 144 + C:080FH LINE# 145 + C:080FH LINE# 147 + C:0812H LINE# 148 + C:0817H LINE# 149 + C:081AH LINE# 151 + C:081CH LINE# 152 + C:081CH LINE# 153 + C:081CH LINE# 154 + C:081FH LINE# 155 + ------- ENDPROC _DA_WRITE + ------- ENDMOD IIC + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:0734H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:075BH PUBLIC _Delay_OneWire + C:069BH PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 14 + + + D:00B8H PUBLIC IP + C:06C2H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:0667H PUBLIC rd_temperature + D:00D0H PUBLIC PSW + C:0757H SYMBOL L?0020 + ------- PROC L?0019 + ------- ENDPROC L?0019 + C:0757H SYMBOL L?0020 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:075BH LINE# 10 + C:075BH LINE# 11 + C:075BH LINE# 13 + C:0765H LINE# 14 + C:0765H LINE# 15 + C:0774H LINE# 17 + C:0774H LINE# 18 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:069BH LINE# 21 + C:069DH LINE# 22 + C:069DH LINE# 24 + C:06A9H LINE# 25 + C:06A9H LINE# 26 + C:06ABH LINE# 27 + C:06AFH LINE# 28 + C:06B2H LINE# 29 + C:06B4H LINE# 30 + C:06B8H LINE# 31 + C:06BBH LINE# 32 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:0734H LINE# 36 + C:0734H LINE# 37 + C:0734H LINE# 41 + C:0740H LINE# 42 + C:0740H LINE# 43 + C:0742H LINE# 44 + C:0746H LINE# 45 + C:0748H LINE# 46 + C:074BH LINE# 47 + C:074BH LINE# 48 + C:074EH LINE# 49 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 15 + + + C:074EH LINE# 50 + C:0751H LINE# 51 + C:0754H LINE# 52 + C:0756H LINE# 53 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.0 SYMBOL initflag + ------- ENDDO + C:06C2H LINE# 56 + C:06C2H LINE# 57 + C:06C2H LINE# 58 + C:06C4H LINE# 60 + C:06C6H LINE# 61 + C:06CDH LINE# 62 + C:06CFH LINE# 63 + C:06D6H LINE# 64 + C:06D8H LINE# 65 + C:06DFH LINE# 66 + C:06E3H LINE# 67 + C:06E6H LINE# 69 + C:06E8H LINE# 70 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:0667H LINE# 72 + C:0667H LINE# 73 + C:0667H LINE# 75 + C:066AH LINE# 76 + C:066FH LINE# 77 + C:0674H LINE# 79 + C:0677H LINE# 80 + C:067CH LINE# 81 + C:0681H LINE# 82 + C:0686H LINE# 83 + C:0689H LINE# 84 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ?C?FPMUL + C:000EH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:011EH PUBLIC ?C?FCASTC + C:0119H PUBLIC ?C?FCASTI + C:0114H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0152H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?UIDIV + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/29/2024 16:09:24 PAGE 16 + + + C:01D3H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:0228H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +Program Size: data=72.1 xdata=0 code=2116 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Init.obj b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Init.obj new file mode 100644 index 0000000..c5b1368 Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Init.obj differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Key.obj b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Key.obj new file mode 100644 index 0000000..ff4d7cc Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Key.obj differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Led.obj b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Led.obj new file mode 100644 index 0000000..34a420d Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Led.obj differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Seg.obj b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Seg.obj new file mode 100644 index 0000000..64c1f04 Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Seg.obj differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Uart.obj b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Uart.obj differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Ultrasonic.obj b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/Ultrasonic.obj differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/ds1302.obj b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/ds1302.obj differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/iic.obj b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/iic.obj new file mode 100644 index 0000000..2332816 Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/iic.obj differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/main.obj b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/main.obj new file mode 100644 index 0000000..12982d9 Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/main.obj differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/onewire.obj b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/onewire.obj new file mode 100644 index 0000000..159c927 Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/onewire.obj differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan new file mode 100644 index 0000000..741b390 Binary files /dev/null and b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan differ diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan.build_log.htm b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..f3191e5 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan.build_log.htm @@ -0,0 +1,42 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: VDM51.DLL V1.00 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\blue-bridge-cup-learning\ģ\4T15ģ2\4T15ģ2_85\User\zuolan.uvproj +Project File Date: 02/24/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling iic.c... +compiling onewire.c... +linking... +Program Size: data=72.1 xdata=0 code=2116 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan.hex b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan.hex new file mode 100644 index 0000000..b8d373c --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan.hex @@ -0,0 +1,170 @@ +:100542000840000000000000000008320A0A0A0AFF +:100552000A0A0A0A08280000000000000000032519 +:0305620013111161 +:10058400E53B7039753B011204538F21E524652145 +:10059400FF5521F522E521F45FF523852124AF22BF +:1005A4007E00EF64047008053FE53F5401F53FEF1A +:0D05B40064054E7008053DE53D5401F53D20 +:0105C1002217 +:10023600E53A6003020331753A01120667E4FBFAF8 +:100246007920784112000E1201528E488F497F4163 +:1002560012070F8F31E53E75F033A4FFAEF07C0038 +:100266007D0A1201D38F3012080DE53D147003028A +:100276000306046003020331E53F04F53275360ACE +:1002860075350A75340A75330AE53F7036AE48AFE0 +:1002960049FC7D641201D37C007D0A1201D38D379F +:1002A600AE48AF497C007D0A1201D37C007D0A125C +:1002B60001D38D38AE48AF497C007D0A1201D38D3B +:1002C600398065E53175F0648475F00A84AFF0EF26 +:1002D60070047F0A80008F37E53175F00A8475F067 +:1002E6000A84AFF0EF700AE537640A70047F0A806B +:1002F600008F38E53175F00A8485F039E4F52E2251 +:1003060075320B75370A75360A75350A75340A75EE +:10031600330AE53E75F00A8475F00A8485F038E5FF +:0C0326003E75F00A8485F039752E012226 +:10033200E53FFB7A007031C3E5499490E5489401AA +:1003420040028032D3E5499464E54894005002802B +:1003520035E549249CFFE54834FFFEEF25E0FFEE3A +:1003620033FE7C007D0F803AAF317E00C3EF94F004 +:10037200748094804005753E32802FD3EF940AEE4C +:10038200648094805005753E0A801FEF24F6FFEECC +:1003920034FFFEEF7802C333CE33CED8F9FF7C00B0 +:1003A2007D171201D3EF240AF53EEB4A70047F0158 +:1003B20080027F008F40E53F640170047F0180026C +:0503C2007F008F4122C5 +:1007F800538E7F5389F0758A18758CFCC28DD28C04 +:05080800D2A9D2AF22CD +:03000B000204CD1F +:1004CD00C0E0C0F0C083C082C0D075D000C000C0F5 +:1004DD0001C002C003C004C005C006C007053BE54E +:1004ED003B640A7002F53B053AE53A64C87002F5C3 +:1004FD003A053CE53C64087002F53C7432253CF845 +:10050D00E6FD7428253CF8E6FBAF3C1205FC744073 +:10051D00253CF8E6FDAF3C1205C2D007D006D0054C +:10052D00D004D003D002D001D000D0D0D082D0835F +:05053D00D0F0D0E03217 +:0E08220000007F237E337DB6DDFEDEFCDFFAB4 +:0108300022A5 +:1007E1001207751207F81208221206671205841201 +:0707F100023612033280F50D +:06056500011C00011DFF56 +:1005C200ED600FA8077401088002C333D8FC421CF7 +:1005D200800EA8077401088002C333D8FCF4521CB1 +:1005E200E51C651D6013E51CF4F580E5A0541F446D +:0905F20080F5A053A01F851C1D1B +:0105FB0022DD +:10056B000C08C0F9A4B0999282F88090FFC10814CE +:08057B00010204081020408079 +:1005FC007580FFE5A0541F44E0F5A074142FF8E6B5 +:10060C00F580E5A0541F44C0F5A053A01F74082D1D +:10061C00F8E6F580EB600353807FE5A0541F44E0BF +:06062C00F5A053A01F22FF +:10045300E4FFC2A9C2C4D2C2D2B5D2B420B3027FD0 +:100463000420B2027F0520B1027F0620B0027F077D +:10047300D2C4C2C2D2B5D2B420B3027F0820B20222 +:100483007F0920B1027F0A20B0027F0BD2C4D2C2FF +:10049300C2B5D2B420B3027F0C20B2027F0D20B1CB +:1004A300027F0E20B0027F0FD2C4D2C2D2B5C2B433 +:1004B30020B3027F1020B2027F1120B1027F1220ED +:0904C300B0027F13D2A975B0FF4D +:0104CC00220D +:100775007580FFE5A0541F4480F5A053A01FE4F544 +:0D07850080E5A0541F44A0F5A053A01F2242 +:0407AF00D2A07F0550 +:1007B300000000000000000000000000000000AE88 +:0607C300071FEE70EB229F +:0F083100D2A11207AFC2A17F051207B3C2A02246 +:0C084000C2A11207AFD2A17F050207B3CE +:02063200AD0712 +:10063400E4FCECC39408748094805024C2A07F0529 +:100644001207B3ED30E704D2A18002C2A17F0512E4 +:1006540007B3D2A0ED25E0FD7F051207B30C80D2CD +:02066400C2A032 +:010666002271 +:1006E900E4FCECC394087480948050171207AFEDB2 +:1006F90025E0FD30A103430501C2A07F051207B320 +:050709000C80DFAF05CC +:01070E0022C8 +:0B07920012063212079DAF0312063260 +:10079D001207AFA2A1E433FDC2A07F051207B3AFCC +:0107AD000546 +:0107AE002228 +:1007C900C2A0EF24FF92A17F051207B31207AFC29F +:0807D900A0D2A17F050207B3C5 +:02070F00AB0736 +:100711001208317F901207921208317F911206322E +:1007210012079D1206E9AD077F011207C9120840A1 +:02073100AF0512 +:0107330022A3 +:10080D00AB071208317F9012063212079D7F4112FD +:05081D000792020840F3 +:040757007F057E009C +:10075B00EF1FAA0670011E4A600FE4FDEDC3940C57 +:09076B007480948050EA0D80F3C3 +:010774002262 +:02069B00A907AD +:10069D00E4FBEBC39408748094805012C294E91368 +:1006AD009294120757D294E9C313F90B80E47F0596 +:0506BD007E0002075B56 +:10073400E4FBEBC39408748094805014C294ECC31B +:1007440013FCD2943094034304801207570B80E2C5 +:02075400AF04F0 +:010756002280 +:1006C200C200D2947F0C7E0012075BC2947F507EE0 +:1006D2000012075BD2947F0A7E0012075BA29492FB +:0606E20000120757A20000 +:0106E80022EF +:100667001206C27FCC12069B7F4412069B1206C25B +:100677007FCC12069B7FBE12069B120734A9071276 +:100687000734EFAD01FCEC120119E4FBFA7980782D +:040697003D02000E12 +:10000E00EC4D6011E8497017ED33EC3304600DE4EC +:10001E00FCFFFEFD22E933E8330470F80201BE1244 +:10002E00018958046009E4CC248150062850090245 +:10003E0001C82840030201C5C0E0EB4A7044B980F4 +:10004E0006D0E0FB0201B4EF4E701CBD8008EBFF42 +:10005E00EAFEE9FD80EBE98DF0A4FEE5F00200F783 +:10006E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89CD +:10007E00F0A42EFFE435F0CD89F0A42DFEE435F08A +:10008E008067EF4E7005BD80D780C3EF8BF0A4ACB8 +:10009E00F0EE8BF0A42CFCE435F0F8EF8AF0A42CF3 +:1000AE00E5F038FCE433CB8DF0A42CFCE5F03BF806 +:1000BE00EE8AF0A42CFCE5F038F8E433CF89F0A4F6 +:1000CE002CFCE5F038CF3400CE89F0A42FFFE5F0FC +:1000DE003EFEE433C98DF0A42EFEE5F039CD8AF054 +:1000EE00A42FFFE5F03EFEE43DFD33D0E0FB5007CC +:1000FE000BBB000F0201C8EC2CFCEF33FFEE33FEFE +:06010E00ED33FD0201A02B +:1001140075F020800E75F010800575F0087D007E66 +:10012400007F003392D530D503120228EC334010FF +:10013400EF33FFEE33FEED33FDEC33FCD5F0ED226F +:0E014400E5F0247EA2D513CC92E7CDCEFF22AB +:10015200EDD2E7CD33EC3392D524814006E4FFFEA5 +:10016200FDFC22FCE4CFCECDCC24E0501174FF8004 +:10017200EDC3CC13CCCD13CDCE13CECF13CF0470A1 +:07018200F030D5DE02022877 +:10018900E9D2E7C933E833F892D5EDD2E7CD33ECBC +:0701990033FC5002B2D52235 +:1001A000EC30E7100FBF000C0EBE00080DBD0004C0 +:1001B0000BEB6014A2D5EB13FCED92E7FD2274FF6C +:1001C000FCFDFEFF22E480F8A2D574FF13FC7D80C5 +:0301D000E480EFD9 +:030000000203C731 +:0C03C700787FE4F6D8FD75814902040E31 +:1001D300BC000BBE0029EF8DF084FFADF022E4CC10 +:1001E300F875F008EF2FFFEE33FEEC33FCEE9DECD9 +:1001F300984005FCEE9DFE0FD5F0E9E4CEFD22ED1F +:10020300F8F5F0EE8420D21CFEADF075F008EF2F68 +:10021300FFED33FD4007985006D5F0F222C398FD59 +:050223000FD5F0EA22F6 +:0E022800C3E49FFFE49EFEE49DFDE49CFC22E7 +:1003D3000207E1E493A3F8E493A34003F68001F258 +:1003E30008DFF48029E493A3F85407240CC8C3332B +:1003F300C4540F4420C8834004F456800146F6DFFA +:10040300E4800B0102040810204080900542E47E42 +:10041300019360BCA3FF543F30E509541FFEE493EE +:10042300A360010ECF54C025E060A840B8E493A3B5 +:10043300FAE493A3F8E493A3C8C582C8CAC583CAE0 +:10044300F0A3C8C582C8CAC583CADFE9DEE780BE98 +:010583000077 +:00000001FF diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan.lnp b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan.lnp new file mode 100644 index 0000000..fcba125 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/Objects/zuolan.lnp @@ -0,0 +1,9 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\iic.obj", +".\Objects\onewire.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/main.c b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/main.c new file mode 100644 index 0000000..8d5d23c --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/main.c @@ -0,0 +1,170 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ʱ䷽ */ +uchar ucRtc[3] = {0x13, 0x11, 0x11}; // ʼʱ13:11:11 + +/* ̷ */ +uchar Key_Slow_Down; + +/* ʾ */ +uchar Seg_show_mode; // 0 ģʽ 1 +uchar Control_mode; + +/* */ +uint temperature_value_10x; +uchar light_value; +uchar DAC_out_dig; // 0-255 +uchar DAC_out_ana_10x; // ģ0-50 +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 4) + Control_mode = (++Control_mode) % 2; + if (Key_Down == 5) + Seg_show_mode = (++Seg_show_mode) % 2; +} +/* ܴ */ +void Seg_Proc() +{ + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + temperature_value_10x = rd_temperature() * 10; + light_value = Ad_Read(0x41); + DAC_out_dig = DAC_out_ana_10x * 51 / 10; + Da_Write(DAC_out_dig); + switch (Seg_show_mode) + { + case 0: + /* ģʽ */ + Seg_Buf[0] = Control_mode + 1; + Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + if (Control_mode == 0) + { + + Seg_Buf[5] = temperature_value_10x / 100 % 10; + Seg_Buf[6] = temperature_value_10x / 10 % 10; + Seg_Buf[7] = temperature_value_10x % 10; + Seg_Point[6] = 1; + } + else + { + Seg_Buf[5] = (light_value / 100 % 10 == 0) ? 10 : light_value / 100 % 10; + Seg_Buf[6] = ((light_value / 10 % 10 == 0) && (Seg_Buf[5] == 10)) ? 10 : light_value / 10 % 10; + Seg_Buf[7] = light_value % 10; + Seg_Point[6] = 0; + } + break; + + case 1: + /* */ + Seg_Buf[0] = 11; // U + + Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + Seg_Buf[6] = DAC_out_ana_10x / 10 % 10; + Seg_Buf[7] = DAC_out_ana_10x % 10; + Seg_Point[6] = 1; + break; + } +} + +/* LED */ +void Led_Proc() +{ + if (Control_mode == 0) + { + if (temperature_value_10x >= 400) + DAC_out_ana_10x = 50; + else if (temperature_value_10x <= 100) + DAC_out_ana_10x = 10; + else + DAC_out_ana_10x = + (temperature_value_10x - 100) * 2 / 15 + 10; + } + else + { + if (light_value >= 240) + DAC_out_ana_10x = 50; + else if (light_value <= 10) + DAC_out_ana_10x = 10; + else + DAC_out_ana_10x = + (light_value - 10) * 4 / 23 + 10; + } + ucLed[0] = (Control_mode == 0); + ucLed[1] = (Control_mode == 1); +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 200) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} +void main() +{ + System_Init(); + Timer0_Init(); + Delay750ms(); + rd_temperature(); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/main.h b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/main.h new file mode 100644 index 0000000..98a2905 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/main.h @@ -0,0 +1,12 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "Init.h" +#include "iic.h" +#include "onewire.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/zuolan.uvgui.haze b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/zuolan.uvgui.haze new file mode 100644 index 0000000..a959f2a --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/zuolan.uvgui.haze @@ -0,0 +1,1369 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 9 + 9 + 1543 + 823 + + + + 0 + + 361 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF60433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CC4A3C4E2CCE25C34543135BDECC4A3C4E2325C34543135BDECC4A3C4E2325FD7F3E1B038355C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000A501000077000000FF05000035020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + A50100007700000081040000E4000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0000000025020000EE050000F4020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000028020000FD050000DB020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000028020000FD050000DB020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000028020000FD050000DB020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000F4020000EE05000007030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000A50100007700000081040000E4000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000F10200007700000081040000C8010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100000D020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000001100000077000000A101000047020000000000004F000000900100000D0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000011000000B801000081040000390200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000000D020000EE0500001102000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000110000004B020000110600002E0300000000000011020000EE050000F40200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2096 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000C524541445F6F6E6577697265960000000000000005000C524541445F6F6E6577697265094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E67650000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 1 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 9 + 85 + 68 + 1 + + 0 + + + + +
diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/zuolan.uvopt b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/zuolan.uvopt new file mode 100644 index 0000000..3c5c38d --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/zuolan.uvopt @@ -0,0 +1,258 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 11 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + +
diff --git a/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/zuolan.uvproj b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/zuolan.uvproj new file mode 100644 index 0000000..c5eab69 --- /dev/null +++ b/题目/模拟题/4T15届模拟2_左岚85/4T15届模拟2_左岚85/User/zuolan.uvproj @@ -0,0 +1,410 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 11 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + iic.c + 1 + ..\Driver\iic.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + + + + + +
diff --git a/题目/模拟题/4T15届模拟3_左岚85.zip b/题目/模拟题/4T15届模拟3_左岚85.zip new file mode 100644 index 0000000..092cba6 Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85.zip differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3.png b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3.png new file mode 100644 index 0000000..6362ece Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3.png differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/.vscode/settings.json b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/.vscode/settings.json new file mode 100644 index 0000000..e25b9c7 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/.vscode/settings.json @@ -0,0 +1,14 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c" + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Init.c b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Init.h b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Key.c b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Key.h b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Led.c b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Led.c new file mode 100644 index 0000000..1c8922e --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Led.c @@ -0,0 +1,75 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief +/// @param enable 0 1 +void Beep(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x40; + else + temp &= ~(0x40); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ĸ߻ǵ͵ƽ +/// @param enable 0 1 +void MOTOR(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x20; + else + temp &= ~(0x20); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Led.h b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Led.h new file mode 100644 index 0000000..845082c --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Led.h @@ -0,0 +1,4 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Beep(bit enable); +void MOTOR(bit enable); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Seg.c b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Seg.c new file mode 100644 index 0000000..f4bcd7d --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Seg.c @@ -0,0 +1,24 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 A P - E +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0x88, 0x8c, 0xbf, 0x86}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Seg.h b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Ultrasonic.c b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Ultrasonic.c new file mode 100644 index 0000000..bfb35bb --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Ultrasonic.c @@ -0,0 +1,55 @@ +#include "Ultrasonic.h" +#include "intrins.h" + +sbit Tx = P1 ^ 0; +sbit Rx = P1 ^ 1; +void Delay12us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 33; + while (--i) + ; +} + +void Ut_Wave_Init() +{ + unsigned char i; + // 840kHzķ + // f=40kHz->T=1/f=0.000025s=25us + // 12.5us 1 12.5us 0 + for (i = 0; i < 8; i++) + { + Tx = 1; + Delay12us(); + Tx = 0; + Delay12us(); + } +} + +unsigned char Ut_Wave_Data() +{ + unsigned int time; + TMOD &= 0x0f; + TH1 = TL1 = 0; + Ut_Wave_Init(); + TR1 = 1; + while ((Rx == 1) && (TF1 == 0)) + ; // ݶȡδû + TR1 = 0; + // ûݶȡ + if (TF1 == 0) + { + time = TH1 << 8 | TL1; // λΪ + // L=V*T/2 + return (time * 0.017); // صĵλcm + } + // ϶˴βЧ + else + { + TF1 = 0; + return 0; + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Ultrasonic.h b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Ultrasonic.h new file mode 100644 index 0000000..bea5589 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/Ultrasonic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.h" +unsigned char Ut_Wave_Data(); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/iic.c b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/iic.c new file mode 100644 index 0000000..40796ea --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/iic.c @@ -0,0 +1,156 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + I2CStart(); + I2CSendByte(0x91); + I2CWaitAck(); + temp = I2CReceiveByte(); + I2CSendAck(1); + I2CStop(); + return temp; +} +// 写入的值是数字值0-255,而不是模拟值 +void Da_Write(unsigned char dat) +{ + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/iic.h b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/iic.h new file mode 100644 index 0000000..52b9d81 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/Driver/iic.h @@ -0,0 +1,3 @@ +#include "STC15F2K60S2.H" +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Init.lst b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Init.lst new file mode 100644 index 0000000..257d095 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 03/02/2024 11:40:38 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Key.lst b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Key.lst new file mode 100644 index 0000000..858733b --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 03/02/2024 11:40:38 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 03/02/2024 11:40:38 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Led.lst b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Led.lst new file mode 100644 index 0000000..758d121 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Led.lst @@ -0,0 +1,101 @@ +C51 COMPILER V9.59.0.0 LED 03/02/2024 11:40:38 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief + 23 /// @param enable 0 1 + 24 void Beep(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~(0x40); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 /// @brief ̵ + 41 /// @param enable 0 1 + 42 void Relay(bit enable) + 43 { + 44 1 static unsigned char temp = 0x00; + 45 1 static unsigned char temp_old = 0xff; + 46 1 if (enable) + 47 1 temp |= 0x10; + 48 1 else + 49 1 temp &= ~(0x10); + 50 1 if (temp != temp_old) + 51 1 { + 52 2 P0 = temp; + 53 2 P2 = P2 & 0x1f | 0xa0; + 54 2 P2 &= 0x1f; + C51 COMPILER V9.59.0.0 LED 03/02/2024 11:40:38 PAGE 2 + + 55 2 temp_old = temp; + 56 2 } + 57 1 } + 58 /// @brief ĸ߻ǵ͵ƽ + 59 /// @param enable 0 1 + 60 void MOTOR(bit enable) + 61 { + 62 1 static unsigned char temp = 0x00; + 63 1 static unsigned char temp_old = 0xff; + 64 1 if (enable) + 65 1 temp |= 0x20; + 66 1 else + 67 1 temp &= ~(0x20); + 68 1 if (temp != temp_old) + 69 1 { + 70 2 P0 = temp; + 71 2 P2 = P2 & 0x1f | 0xa0; + 72 2 P2 &= 0x1f; + 73 2 temp_old = temp; + 74 2 } + 75 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 163 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 8 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 3 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Seg.lst b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Seg.lst new file mode 100644 index 0000000..deac4b0 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Seg.lst @@ -0,0 +1,48 @@ +C51 COMPILER V9.59.0.0 SEG 03/02/2024 11:40:38 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 A P - E + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0x88, 0x8c, 0xbf, 0x86}; + 5 // λѡ + 6 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 8 { + 9 1 // ֶ + 10 1 P0 = 0xff; + 11 1 P2 = P2 & 0x1f | 0xe0; + 12 1 + 13 1 // ѡʾλ + 14 1 P0 = seg_wela[wela]; + 15 1 P2 = P2 & 0x1f | 0xc0; + 16 1 P2 &= 0x1f; + 17 1 + 18 1 // ѡʾ + 19 1 P0 = seg_dula[dula]; + 20 1 if (point) + 21 1 P0 &= 0x7f; + 22 1 P2 = P2 & 0x1f | 0xe0; + 23 1 P2 &= 0x1f; + 24 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 23 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Uart.lst b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Ultrasonic.lst b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..a461ae8 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 03/02/2024 11:40:39 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 03/02/2024 11:40:39 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/ds1302.lst b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/iic.lst b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/iic.lst new file mode 100644 index 0000000..d78e719 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/iic.lst @@ -0,0 +1,185 @@ +C51 COMPILER V9.59.0.0 IIC 03/02/2024 11:40:38 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 03/02/2024 11:40:38 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 03/02/2024 11:40:38 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 255 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/main.lst b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/main.lst new file mode 100644 index 0000000..5289d34 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/main.lst @@ -0,0 +1,233 @@ +C51 COMPILER V9.59.0.0 MAIN 03/02/2024 11:40:38 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ʾ */ + 12 uchar Seg_show_mode; // 0 1 2 ¼ + 13 uchar Control_mode; // 0 1 ť + 14 /* ̷ */ + 15 uchar Key_Slow_Down; + 16 /* */ + 17 uchar Distance_value; // + 18 uchar Para_max = 60; // + 19 uchar Para_min = 10; // + 20 uchar Wring_count; // + 21 bit Wring_flag; // ־ + 22 uchar Para_mode; // 0 1 2 + 23 uchar Vol_level; // ѹȼڿ 1 2 3 4 + 24 bit Led_show_flag; // LED˸ + 25 /* ʱ */ + 26 uchar time_100ms; + 27 /* ̴ */ + 28 void Key_Proc() + 29 { + 30 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 31 1 if (Key_Slow_Down) + 32 1 return; + 33 1 Key_Slow_Down = 1; + 34 1 + 35 1 Key_Val = Key_Read(); + 36 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 37 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 38 1 Key_Old = Key_Val; + 39 1 if (Key_Down == 4) + 40 1 Seg_show_mode = (++Seg_show_mode) % 3; + 41 1 + 42 1 if (Key_Down == 5) + 43 1 { + 44 2 if (Seg_show_mode == 1) + 45 2 Control_mode = (++Control_mode) % 2; + 46 2 if (Seg_show_mode == 2) + 47 2 Wring_count = 0; + 48 2 Para_mode = 0; // лʱťģʽãֹbug + 49 2 } + 50 1 if (Seg_show_mode == 1) + 51 1 { // ģʽ + 52 2 if (Control_mode == 0) + 53 2 { + 54 3 if (Key_Down == 9) + C51 COMPILER V9.59.0.0 MAIN 03/02/2024 11:40:38 PAGE 2 + + 55 3 Para_max = (Para_max + 10 > 90) ? 50 + 56 3 : Para_max + 10; + 57 3 if (Key_Down == 8) + 58 3 Para_min = (Para_min + 10 > 40) ? 0 + 59 3 : Para_min + 10; + 60 3 } + 61 2 // ťģʽ + 62 2 else + 63 2 { + 64 3 if (Key_Down == 9) + 65 3 Para_mode = 1; + 66 3 if (Key_Down == 8) + 67 3 Para_mode = 2; + 68 3 } + 69 2 } + 70 1 } + 71 /* ܴ */ + 72 void Seg_Proc() + 73 { + 74 1 uchar i; + 75 1 if (Seg_Slow_Down) + 76 1 return; + 77 1 Seg_Slow_Down = 1; + 78 1 Distance_value = Ut_Wave_Data(); + 79 1 // + 80 1 if ((Distance_value < Para_min || Distance_value > Para_max)) + 81 1 { + 82 2 // ûбʱ + 83 2 if (Wring_flag == 0) + 84 2 { + 85 3 Wring_count++; + 86 3 Wring_flag = 1; + 87 3 } + 88 2 } + 89 1 // ûгޣͱflag׼һα + 90 1 else + 91 1 { + 92 2 Wring_flag = 0; + 93 2 } + 94 1 // ǴťƲŽвɼѹ + 95 1 if (Control_mode == 1) + 96 1 { + 97 2 Vol_level = Ad_Read(0x03) / 51; + 98 2 Vol_level = (Vol_level >= 4) ? 4 : Vol_level; // һ£ֹж5ļ + 99 2 if (Para_mode == 1) + 100 2 Para_max = Vol_level * 10 +50; + 101 2 else if (Para_mode == 2) + 102 2 Para_min = Vol_level * 10; + 103 2 } + 104 1 switch (Seg_show_mode) + 105 1 { + 106 2 case 0: + 107 2 /* */ + 108 2 Seg_Buf[0] = 11; // A + 109 2 for (i = 1; i < 5; i++) + 110 2 { + 111 3 Seg_Buf[i] = 10; + 112 3 } + 113 2 Seg_Buf[5] = (Distance_value / 100 % 10 == 0) ? 10 + 114 2 : Distance_value / 100 % 10; + 115 2 Seg_Buf[6] = ((Distance_value / 10 % 10 == 0) && (Seg_Buf[5] == 0)) ? 10 + 116 2 : Distance_value / 10 % 10; + C51 COMPILER V9.59.0.0 MAIN 03/02/2024 11:40:38 PAGE 3 + + 117 2 Seg_Buf[7] = Distance_value % 10; + 118 2 break; + 119 2 + 120 2 case 1: + 121 2 /* */ + 122 2 Seg_Buf[0] = 12; // P + 123 2 Seg_Buf[1] = Control_mode + 1; + 124 2 Seg_Buf[2] = 10; + 125 2 Seg_Buf[3] = Para_min / 10 % 10; + 126 2 Seg_Buf[4] = Para_min % 10; + 127 2 Seg_Buf[5] = 13; //- + 128 2 Seg_Buf[6] = Para_max / 10 % 10; + 129 2 Seg_Buf[7] = Para_max % 10; + 130 2 break; + 131 2 + 132 2 case 2: + 133 2 /* ¼ */ + 134 2 Seg_Buf[0] = 14; // E + 135 2 for (i = 1; i < 7; i++) + 136 2 { + 137 3 Seg_Buf[i] = 10; + 138 3 } + 139 2 Seg_Buf[7] = (Wring_count > 9) ? 13 + 140 2 : Wring_count; + 141 2 break; + 142 2 } + 143 1 } + 144 + 145 /* LED */ + 146 void Led_Proc() + 147 { + 148 1 ucLed[0] = (Seg_show_mode == 0); + 149 1 ucLed[1] = (Seg_show_mode == 1); + 150 1 ucLed[2] = (Seg_show_mode == 2); + 151 1 ucLed[7] = (Wring_flag == 0) ? 1 + 152 1 : Led_show_flag; + 153 1 } + 154 + 155 /* ʱ0жϳʼ */ + 156 void Timer0_Init(void) // 1@12.000MHz + 157 { + 158 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 159 1 TMOD &= 0xF0; // öʱģʽ + 160 1 TL0 = 0x18; // öʱʼֵ + 161 1 TH0 = 0xFC; // öʱʼֵ + 162 1 TF0 = 0; // TF0־ + 163 1 TR0 = 1; // ʱ0ʼʱ + 164 1 ET0 = 1; + 165 1 EA = 1; + 166 1 } + 167 + 168 /* ʱ0жϺ */ + 169 void Timer0_ISR(void) interrupt 1 + 170 { + 171 1 if (++Key_Slow_Down == 10) + 172 1 Key_Slow_Down = 0; + 173 1 if (++Seg_Slow_Down == 500) + 174 1 Seg_Slow_Down = 0; + 175 1 if (++Seg_Pos == 8) + 176 1 Seg_Pos = 0; + 177 1 if (Wring_flag) + 178 1 { + C51 COMPILER V9.59.0.0 MAIN 03/02/2024 11:40:38 PAGE 4 + + 179 2 if (++time_100ms == 100) + 180 2 { + 181 3 time_100ms = 0; + 182 3 Led_show_flag ^= 1; + 183 3 } + 184 2 } + 185 1 else + 186 1 { + 187 2 time_100ms = 0; + 188 2 } + 189 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 190 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 191 1 } + 192 + 193 void main() + 194 { + 195 1 System_Init(); + 196 1 Timer0_Init(); + 197 1 while (1) + 198 1 { + 199 2 Key_Proc(); + 200 2 Seg_Proc(); + 201 2 Led_Proc(); + 202 2 } + 203 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 742 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 40 1 + IDATA SIZE = ---- ---- + BIT SIZE = 2 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/onewire.lst b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/onewire.lst new file mode 100644 index 0000000..c7f63e7 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/zuolan.m51 b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/zuolan.m51 new file mode 100644 index 0000000..5a78aaa --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Listings/zuolan.m51 @@ -0,0 +1,967 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\iic.obj, .\Objects\Ultrasonic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\iic.obj (IIC) + .\Objects\Ultrasonic.obj (ULTRASONIC) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0017H UNIT ?DT?SEG + DATA 001FH 0001H UNIT _DATA_GROUP_ + BIT 0020H.0 0000H.2 UNIT ?BI?MAIN + BIT 0020H.2 0000H.1 UNIT ?BI?BEEP?LED + BIT 0020H.3 0000H.1 UNIT ?BI?RELAY?LED + BIT 0020H.4 0000H.1 UNIT ?BI?MOTOR?LED + 0020H.5 0000H.3 *** GAP *** + DATA 0021H 0028H UNIT ?DT?MAIN + DATA 0049H 0008H UNIT ?DT?LED + IDATA 0051H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0007H UNIT ?PR?DELAY12US?ULTRASONIC + 000AH 0001H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 01D3H UNIT ?C?LIB_CODE + CODE 01E1H 0139H UNIT ?PR?SEG_PROC?MAIN + CODE 031AH 00BCH UNIT ?PR?KEY_PROC?MAIN + CODE 03D6H 0091H UNIT ?PR?TIMER0_ISR?MAIN + CODE 0467H 008CH UNIT ?C_C51STARTUP + CODE 04F3H 007AH UNIT ?PR?KEY_READ?KEY + CODE 056DH 0058H UNIT ?C_INITSEG + CODE 05C5H 003AH UNIT ?PR?LED_PROC?MAIN + CODE 05FFH 003AH UNIT ?PR?_LED_DISP?LED + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 2 + + + CODE 0639H 0039H UNIT ?PR?UT_WAVE_DATA?ULTRASONIC + CODE 0672H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 06A8H 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 06DDH 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 0703H 0025H UNIT ?PR?_AD_READ?IIC + CODE 0728H 0023H UNIT ?PR?BEEP?LED + CODE 074BH 0023H UNIT ?PR?RELAY?LED + CODE 076EH 0023H UNIT ?PR?MOTOR?LED + CODE 0791H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 07AEH 001DH UNIT ?PR?I2CWAITACK?IIC + CODE 07CBH 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 07E5H 001AH UNIT ?PR?UT_WAVE_INIT?ULTRASONIC + CODE 07FFH 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 0817H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 082CH 0015H UNIT ?PR?_DA_WRITE?IIC + CODE 0841H 0011H UNIT ?PR?MAIN?MAIN + CODE 0852H 000FH UNIT ?PR?I2CSTART?IIC + CODE 0861H 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT DATA_GROUP + +--> CALLED SEGMENT START LENGTH +--------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?KEY_PROC?MAIN ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN 001FH 0001H + +--> ?PR?UT_WAVE_DATA?ULTRASONIC + +--> ?PR?_AD_READ?IIC + +?PR?UT_WAVE_DATA?ULTRASONIC ----- ----- + +--> ?PR?UT_WAVE_INIT?ULTRASONIC + +?PR?UT_WAVE_INIT?ULTRASONIC ----- ----- + +--> ?PR?DELAY12US?ULTRASONIC + + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 3 + + +?PR?_AD_READ?IIC ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CWAITACK?IIC ----- ----- + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDACK?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:03D6H PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:0025H PUBLIC time_100ms + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + B:0020H.0 PUBLIC Wring_flag + D:00F8H PUBLIC P7 + C:05C5H PUBLIC Led_Proc + D:0026H PUBLIC Para_mode + D:0027H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:01E1H PUBLIC Seg_Proc + D:002FH PUBLIC Wring_count + D:00B8H PUBLIC IP + D:0030H PUBLIC Seg_Buf + C:031AH PUBLIC Key_Proc + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 4 + + + D:0038H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:0841H PUBLIC main + C:0817H PUBLIC Timer0_Init + D:0039H PUBLIC Para_min + D:003AH PUBLIC Key_Slow_Down + D:003BH PUBLIC Vol_level + D:003CH PUBLIC Para_max + D:003DH PUBLIC Distance_value + D:003EH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + B:0020H.1 PUBLIC Led_show_flag + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:003FH PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + D:0040H PUBLIC Control_mode + D:0041H PUBLIC ucLed + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:031AH LINE# 28 + C:031AH LINE# 29 + C:031AH LINE# 31 + C:0321H LINE# 33 + C:0324H LINE# 35 + C:0329H LINE# 36 + C:0332H LINE# 37 + C:0338H LINE# 38 + C:033BH LINE# 39 + C:0344H LINE# 40 + C:034FH LINE# 42 + C:0355H LINE# 43 + C:0355H LINE# 44 + C:035DH LINE# 45 + C:0365H LINE# 46 + C:036BH LINE# 47 + C:036DH LINE# 48 + C:0370H LINE# 49 + C:0370H LINE# 50 + C:0376H LINE# 51 + C:0376H LINE# 52 + C:037AH LINE# 53 + C:037AH LINE# 54 + C:0380H LINE# 55 + C:039EH LINE# 57 + C:03A4H LINE# 58 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 5 + + + C:03C2H LINE# 60 + C:03C3H LINE# 63 + C:03C3H LINE# 64 + C:03C9H LINE# 65 + C:03CCH LINE# 66 + C:03D2H LINE# 67 + C:03D5H LINE# 68 + C:03D5H LINE# 69 + C:03D5H LINE# 70 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:001FH SYMBOL i + ------- ENDDO + C:01E1H LINE# 72 + C:01E1H LINE# 73 + C:01E1H LINE# 75 + C:01E8H LINE# 77 + C:01EBH LINE# 78 + C:01F0H LINE# 80 + C:01FEH LINE# 81 + C:01FEH LINE# 83 + C:0201H LINE# 84 + C:0201H LINE# 85 + C:0203H LINE# 86 + C:0205H LINE# 87 + C:0205H LINE# 88 + C:0207H LINE# 91 + C:0207H LINE# 92 + C:0209H LINE# 93 + C:0209H LINE# 95 + C:020FH LINE# 96 + C:020FH LINE# 97 + C:021BH LINE# 98 + C:022CH LINE# 99 + C:0235H LINE# 100 + C:0241H LINE# 101 + C:0247H LINE# 102 + C:024FH LINE# 103 + C:024FH LINE# 104 + C:0261H LINE# 105 + C:0261H LINE# 106 + C:0261H LINE# 108 + C:0264H LINE# 109 + C:0272H LINE# 110 + C:0272H LINE# 111 + C:0279H LINE# 112 + C:027DH LINE# 113 + C:0292H LINE# 115 + C:02ABH LINE# 117 + C:02ADH LINE# 118 + C:02AFH LINE# 120 + C:02AFH LINE# 122 + C:02B2H LINE# 123 + C:02B7H LINE# 124 + C:02BAH LINE# 125 + C:02C7H LINE# 126 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 6 + + + C:02D0H LINE# 127 + C:02D3H LINE# 128 + C:02E0H LINE# 129 + C:02E9H LINE# 130 + C:02EAH LINE# 132 + C:02EAH LINE# 134 + C:02EDH LINE# 135 + C:02FBH LINE# 136 + C:02FBH LINE# 137 + C:0302H LINE# 138 + C:0306H LINE# 139 + C:0319H LINE# 141 + C:0319H LINE# 142 + C:0319H LINE# 143 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:05C5H LINE# 146 + C:05C5H LINE# 147 + C:05C5H LINE# 148 + C:05D4H LINE# 149 + C:05E2H LINE# 150 + C:05F0H LINE# 151 + C:05FEH LINE# 153 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:0817H LINE# 156 + C:0817H LINE# 157 + C:0817H LINE# 158 + C:081AH LINE# 159 + C:081DH LINE# 160 + C:0820H LINE# 161 + C:0823H LINE# 162 + C:0825H LINE# 163 + C:0827H LINE# 164 + C:0829H LINE# 165 + C:082BH LINE# 166 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:03D6H LINE# 169 + C:03F3H LINE# 171 + C:03FBH LINE# 172 + C:03FDH LINE# 173 + C:0409H LINE# 174 + C:040CH LINE# 175 + C:0414H LINE# 176 + C:0416H LINE# 177 + C:0419H LINE# 178 + C:0419H LINE# 179 + C:0421H LINE# 180 + C:0421H LINE# 181 + C:0423H LINE# 182 + C:0428H LINE# 183 + C:0428H LINE# 184 + C:042AH LINE# 186 + C:042AH LINE# 187 + C:042DH LINE# 188 + C:042DH LINE# 189 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 7 + + + C:0440H LINE# 190 + C:044CH LINE# 191 + ------- ENDPROC TIMER0_ISR + ------- PROC MAIN + C:0841H LINE# 193 + C:0841H LINE# 194 + C:0841H LINE# 195 + C:0844H LINE# 196 + C:0847H LINE# 197 + C:0847H LINE# 198 + C:0847H LINE# 199 + C:084AH LINE# 200 + C:084DH LINE# 201 + C:0850H LINE# 202 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:074BH PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:05FFH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + C:076EH PUBLIC MOTOR + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:0728H PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:0049H SYMBOL temp + D:004AH SYMBOL temp_old + ------- ENDDO + C:05FFH LINE# 5 + C:05FFH LINE# 6 + C:05FFH LINE# 10 + C:0602H LINE# 11 + C:0611H LINE# 13 + C:061FH LINE# 14 + C:0625H LINE# 15 + C:0625H LINE# 16 + C:062AH LINE# 17 + C:0632H LINE# 18 + C:0635H LINE# 19 + C:0638H LINE# 20 + C:0638H LINE# 21 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 8 + + + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0020H.2 SYMBOL enable + ------- DO + D:004BH SYMBOL temp + D:004CH SYMBOL temp_old + ------- ENDDO + C:0728H LINE# 24 + C:0728H LINE# 25 + C:0728H LINE# 28 + C:072BH LINE# 29 + C:0730H LINE# 31 + C:0733H LINE# 32 + C:0739H LINE# 33 + C:0739H LINE# 34 + C:073CH LINE# 35 + C:0744H LINE# 36 + C:0747H LINE# 37 + C:074AH LINE# 38 + C:074AH LINE# 39 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0020H.3 SYMBOL enable + ------- DO + D:004DH SYMBOL temp + D:004EH SYMBOL temp_old + ------- ENDDO + C:074BH LINE# 42 + C:074BH LINE# 43 + C:074BH LINE# 46 + C:074EH LINE# 47 + C:0753H LINE# 49 + C:0756H LINE# 50 + C:075CH LINE# 51 + C:075CH LINE# 52 + C:075FH LINE# 53 + C:0767H LINE# 54 + C:076AH LINE# 55 + C:076DH LINE# 56 + C:076DH LINE# 57 + ------- ENDPROC RELAY + ------- PROC MOTOR + B:0020H.4 SYMBOL enable + ------- DO + D:004FH SYMBOL temp + D:0050H SYMBOL temp_old + ------- ENDDO + C:076EH LINE# 60 + C:076EH LINE# 61 + C:076EH LINE# 64 + C:0771H LINE# 65 + C:0776H LINE# 67 + C:0779H LINE# 68 + C:077FH LINE# 69 + C:077FH LINE# 70 + C:0782H LINE# 71 + C:078AH LINE# 72 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 9 + + + C:078DH LINE# 73 + C:0790H LINE# 74 + C:0790H LINE# 75 + ------- ENDPROC MOTOR + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0672H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0017H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:0672H LINE# 7 + C:0672H LINE# 8 + C:0672H LINE# 10 + C:0675H LINE# 11 + C:067DH LINE# 14 + C:0684H LINE# 15 + C:068CH LINE# 16 + C:068FH LINE# 19 + C:0696H LINE# 20 + C:0699H LINE# 21 + C:069CH LINE# 22 + C:06A4H LINE# 23 + C:06A7H LINE# 24 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:04F3H PUBLIC Key_Read + D:00A8H PUBLIC IE + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 10 + + + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:04F3H LINE# 2 + C:04F3H LINE# 3 + C:04F3H LINE# 4 + C:04F5H LINE# 5 + C:04F7H LINE# 6 + C:04F9H LINE# 7 + C:04FBH LINE# 8 + C:04FDH LINE# 9 + C:04FFH LINE# 10 + C:0502H LINE# 11 + C:0504H LINE# 12 + C:0507H LINE# 13 + C:0509H LINE# 14 + C:050CH LINE# 15 + C:050EH LINE# 16 + C:0511H LINE# 17 + C:0513H LINE# 18 + C:0515H LINE# 19 + C:0517H LINE# 20 + C:0519H LINE# 21 + C:051BH LINE# 22 + C:051EH LINE# 23 + C:0520H LINE# 24 + C:0523H LINE# 25 + C:0525H LINE# 26 + C:0528H LINE# 27 + C:052AH LINE# 28 + C:052DH LINE# 29 + C:052FH LINE# 30 + C:0531H LINE# 31 + C:0533H LINE# 32 + C:0535H LINE# 33 + C:0537H LINE# 34 + C:053AH LINE# 35 + C:053CH LINE# 36 + C:053FH LINE# 37 + C:0541H LINE# 38 + C:0544H LINE# 39 + C:0546H LINE# 40 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 11 + + + C:0549H LINE# 41 + C:054BH LINE# 42 + C:054DH LINE# 43 + C:054FH LINE# 44 + C:0551H LINE# 45 + C:0553H LINE# 46 + C:0556H LINE# 47 + C:0558H LINE# 48 + C:055BH LINE# 49 + C:055DH LINE# 50 + C:0560H LINE# 51 + C:0562H LINE# 52 + C:0565H LINE# 53 + C:0567H LINE# 54 + C:0569H LINE# 55 + C:056CH LINE# 56 + C:056CH LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0791H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0791H LINE# 3 + C:0791H LINE# 4 + C:0791H LINE# 5 + C:0794H LINE# 6 + C:079CH LINE# 7 + C:079FH LINE# 9 + C:07A2H LINE# 10 + C:07AAH LINE# 11 + C:07ADH LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0703H PUBLIC _Ad_Read + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 12 + + + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:07CFH SYMBOL _I2C_Delay + C:082CH PUBLIC _Da_Write + D:00B8H PUBLIC IP + C:06DDH PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + B:00A0H.0 PUBLIC scl + C:0852H PUBLIC I2CStart + C:07FFH PUBLIC _I2CSendAck + C:06A8H PUBLIC _I2CSendByte + C:07B9H PUBLIC I2CWaitAck + C:0861H PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:07CBH SYMBOL L?0024 + ------- PROC L?0023 + ------- ENDPROC L?0023 + C:07CBH SYMBOL L?0024 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:07CFH LINE# 12 + C:07CFH LINE# 13 + C:07CFH LINE# 15 + C:07CFH LINE# 16 + C:07D0H LINE# 17 + C:07D1H LINE# 18 + C:07D2H LINE# 19 + C:07D3H LINE# 20 + C:07D4H LINE# 21 + C:07D5H LINE# 22 + C:07D6H LINE# 23 + C:07D7H LINE# 24 + C:07D8H LINE# 25 + C:07D9H LINE# 26 + C:07DAH LINE# 27 + C:07DBH LINE# 28 + C:07DCH LINE# 29 + C:07DDH LINE# 30 + C:07DEH LINE# 31 + C:07E4H LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:0852H LINE# 35 + C:0852H LINE# 36 + C:0852H LINE# 37 + C:0854H LINE# 38 + C:0854H LINE# 39 + C:0857H LINE# 40 + C:0859H LINE# 41 + C:085EH LINE# 42 + C:0860H LINE# 43 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 13 + + + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:0861H LINE# 46 + C:0861H LINE# 47 + C:0861H LINE# 48 + C:0863H LINE# 49 + C:0863H LINE# 50 + C:0866H LINE# 51 + C:0868H LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:06A8H LINE# 56 + C:06AAH LINE# 57 + C:06AAH LINE# 60 + C:06B6H LINE# 61 + C:06B6H LINE# 62 + C:06B8H LINE# 63 + C:06BDH LINE# 64 + C:06C1H LINE# 65 + C:06C1H LINE# 66 + C:06C3H LINE# 67 + C:06C5H LINE# 69 + C:06C5H LINE# 70 + C:06C7H LINE# 71 + C:06C7H LINE# 72 + C:06CCH LINE# 73 + C:06CEH LINE# 74 + C:06D2H LINE# 75 + C:06D7H LINE# 76 + C:06DAH LINE# 78 + C:06DCH LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:06DDH LINE# 82 + C:06DDH LINE# 83 + C:06DDH LINE# 86 + C:06E9H LINE# 87 + C:06E9H LINE# 88 + C:06E9H LINE# 89 + C:06ECH LINE# 90 + C:06F0H LINE# 91 + C:06F3H LINE# 92 + C:06F6H LINE# 93 + C:06F8H LINE# 94 + C:06FDH LINE# 95 + C:0700H LINE# 96 + C:0702H LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + ------- PROC L?0022 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 14 + + + ------- ENDPROC L?0022 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:07B9H LINE# 100 + C:07B9H LINE# 101 + C:07B9H LINE# 104 + C:07B9H LINE# 105 + C:07BCH LINE# 106 + C:07C1H LINE# 107 + C:07C3H LINE# 108 + C:07C8H LINE# 110 + C:07CAH LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:07FFH LINE# 114 + C:07FFH LINE# 115 + C:07FFH LINE# 116 + C:0801H LINE# 117 + C:0806H LINE# 118 + C:080BH LINE# 119 + C:080BH LINE# 120 + C:080EH LINE# 121 + C:0810H LINE# 122 + C:0812H LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:0703H LINE# 126 + C:0705H LINE# 127 + C:0705H LINE# 130 + C:0708H LINE# 131 + C:070AH LINE# 132 + C:070AH LINE# 133 + C:070AH LINE# 134 + C:070DH LINE# 135 + C:0710H LINE# 136 + C:0715H LINE# 137 + C:0718H LINE# 138 + C:071DH LINE# 139 + C:0722H LINE# 140 + C:0725H LINE# 141 + C:0727H LINE# 142 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:082CH LINE# 144 + C:082EH LINE# 145 + C:082EH LINE# 147 + C:0831H LINE# 148 + C:0836H LINE# 149 + C:0839H LINE# 151 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 15 + + + C:083BH LINE# 152 + C:083BH LINE# 153 + C:083BH LINE# 154 + C:083EH LINE# 155 + ------- ENDPROC _DA_WRITE + ------- ENDMOD IIC + + ------- MODULE ULTRASONIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + C:0639H PUBLIC Ut_Wave_Data + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + C:07E5H PUBLIC Ut_Wave_Init + C:0003H PUBLIC Delay12us + B:0090H.1 PUBLIC Rx + B:0088H.7 PUBLIC TF1 + B:0090H.0 PUBLIC Tx + D:008DH PUBLIC TH1 + D:008BH PUBLIC TL1 + B:0088H.6 PUBLIC TR1 + D:00D0H PUBLIC PSW + ------- PROC DELAY12US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0003H LINE# 6 + C:0003H LINE# 7 + C:0003H LINE# 10 + C:0004H LINE# 11 + C:0005H LINE# 12 + C:0007H LINE# 13 + C:0009H LINE# 15 + ------- ENDPROC DELAY12US + ------- PROC UT_WAVE_INIT + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:07E5H LINE# 17 + C:07E5H LINE# 18 + C:07E5H LINE# 23 + C:07F1H LINE# 24 + C:07F1H LINE# 25 + C:07F3H LINE# 26 + C:07F6H LINE# 27 + C:07F8H LINE# 28 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 16 + + + C:07FBH LINE# 29 + C:07FEH LINE# 30 + ------- ENDPROC UT_WAVE_INIT + ------- PROC UT_WAVE_DATA + ------- DO + D:0006H SYMBOL time + ------- ENDDO + C:0639H LINE# 32 + C:0639H LINE# 33 + C:0639H LINE# 35 + C:063CH LINE# 36 + C:0641H LINE# 37 + C:0644H LINE# 38 + C:0646H LINE# 39 + C:064CH LINE# 41 + C:064EH LINE# 43 + C:0651H LINE# 44 + C:0651H LINE# 45 + C:0659H LINE# 47 + C:066DH LINE# 48 + C:066DH LINE# 51 + C:066DH LINE# 52 + C:066FH LINE# 53 + C:0671H LINE# 54 + C:0671H LINE# 55 + ------- ENDPROC UT_WAVE_DATA + ------- ENDMOD ULTRASONIC + + ------- MODULE ?C?FPMUL + C:000EH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:011EH PUBLIC ?C?FCASTC + C:0119H PUBLIC ?C?FCASTI + C:0114H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0152H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?LNEG + C:01D3H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_DA_WRITE?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/02/2024 11:40:39 PAGE 17 + + + +Program Size: data=81.5 xdata=0 code=2156 +LINK/LOCATE RUN COMPLETE. 4 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Init.obj b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Init.obj new file mode 100644 index 0000000..0b440d5 Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Init.obj differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Key.obj b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Key.obj new file mode 100644 index 0000000..78fd7d7 Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Key.obj differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Led.obj b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Led.obj new file mode 100644 index 0000000..00278d6 Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Led.obj differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Seg.obj b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Seg.obj new file mode 100644 index 0000000..a18a4f4 Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Seg.obj differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Uart.obj b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Uart.obj differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Ultrasonic.obj b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..43a045a Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/Ultrasonic.obj differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/ds1302.obj b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/ds1302.obj differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/iic.obj b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/iic.obj new file mode 100644 index 0000000..8c49be6 Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/iic.obj differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/main.obj b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/main.obj new file mode 100644 index 0000000..ac56b31 Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/main.obj differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/onewire.obj b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/onewire.obj new file mode 100644 index 0000000..772b6d9 Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/onewire.obj differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan new file mode 100644 index 0000000..2315f09 Binary files /dev/null and b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan differ diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan.build_log.htm b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..9437556 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan.build_log.htm @@ -0,0 +1,50 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: VDM51.DLL V1.00 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\demo_zuolan_old\User\zuolan.uvproj +Project File Date: 02/24/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling iic.c... +compiling Ultrasonic.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_DA_WRITE?IIC +Program Size: data=81.5 xdata=0 code=2156 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 4 Warning(s). +
+ + diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan.hex b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan.hex new file mode 100644 index 0000000..254ddfb --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan.hex @@ -0,0 +1,174 @@ +:10056D00084100000000000000000830050A0A0ADA +:10057D000A0A0A0A08270000000000000000013CDA +:04058D003C01390AEA +:10031A00E53A60030203D5753A011204F38F21E529 +:10032A00246521FF5521F522E521F45FF523852176 +:10033A0024AF227E00EF6404700B053FE53F75F0A1 +:10034A00038485F03FEF64054E701BAF3FFEEF64F8 +:10035A000170080540E5405401F540EF64024E7013 +:10036A0002F52FE4F526E53F6401705FE540704928 +:10037A00E5226409701EE53C240AFFE433FED3EF4C +:10038A00945AEE6480948040047F328005E53C24D0 +:10039A000AFF8F3CE52264087031E539240AFFE43C +:1003AA0033FED3EF9428EE6480948040047F00806B +:1003BA0005E539240AFF8F3922E52264097003759D +:0B03CA002601E522640870037526027E +:0103D5002205 +:1001E100E53860030203197538011206398F3DE5C0 +:1001F1003DC395394007E53DD3953C4009200008B2 +:10020100052FD2008002C200E540640170407F03E7 +:10021100120703EF75F03384F53BC39404748094A3 +:100221008040047F048002AF3B8F3BAF267E00EF0E +:100231006401700CE53B75F00AA42432F53C800E94 +:10024100EF64024E7008E53B75F00AA4F539E53F0D +:1002510014605B1470030202EA24026003020319B2 +:1002610075300B751F01C3E51F9405748094805090 +:100271000B7430251FF8760A051F80EAE53D75F0FD +:10028100648475F00A84AFF0EF70047F0A80008FF8 +:1002910035E53D75F00A8475F00A84AFF0EF70081A +:1002A100E53570047F0A80008F36E53D8033753077 +:1002B1000CE54004F53175320AE53975F00A8475AB +:1002C100F00A8485F033E53975F00A8485F03475D8 +:1002D100350DE53C75F00A8475F00A8485F036E544 +:1002E1003C75F00A8485F0372275300E751F01C305 +:1002F100E51F940774809480500B7430251FF876A5 +:100301000A051F80EAD3E52F940974809480400484 +:080311007F0D8002AF2F8F3732 +:0103190022C1 +:1005C500AF3F7E00EF70047D0180027D008D41EF1D +:1005D50064014E70047F0180027F008F42E53F6415 +:1005E5000270047F0180027F008F432000047F0199 +:0A05F5008005A201E433FF8F4822C5 +:10081700538E7F5389F0758A18758CFCC28DD28CE4 +:05082700D2A9D2AF22AE +:03000B000203D617 +:1003D600C0E0C0F0C083C082C0D075D000C000C0ED +:1003E60001C002C003C004C005C006C007053AE547 +:1003F6003A640A7002F53A0538AF387E00BE010647 +:10040600BFF403753800053EE53E64087002F53E0C +:100416003000110525E5256464700CF525A201B3AD +:10042600920180037525007430253EF8E6FD742799 +:10043600253EF8E6FBAF3E1206727441253EF8E60D +:10044600FDAF3E1205FFD007D006D005D004D0037D +:10045600D002D001D000D0D0D082D083D0F0D0E06E +:010466003263 +:1008410012079112081712031A1201E11205C5804D +:01085100F5B1 +:10059100014900014AFF014B00014CFF014D0001DF +:0805A1004EFF014F000150FF65 +:1005FF00ED600FA8077401088002C333D8FC42498D +:10060F00800EA8077401088002C333D8FCF4524946 +:10061F00E549654A6013E549F4F580E5A0541F44A8 +:09062F0080F5A053A01F85494A83 +:01063800229F +:10072800300205434B408003534BBFE54B654C609B +:1007380011854B80E5A0541F44A0F5A053A01F8548 +:020748004B4C18 +:01074A00228C +:10074B00300305434D108003534DEFE54D654E606F +:10075B0011854D80E5A0541F44A0F5A053A01F8523 +:02076B004D4EF1 +:01076D002269 +:10076E00300405434F208003534FDFE54F65506043 +:10077E0011854F80E5A0541F44A0F5A053A01F85FE +:02078E004F50CA +:010790002246 +:1005A9000F08C0F9A4B0999282F88090FF888CBF97 +:0B05B900860817010204081020408093 +:100672007580FFE5A0541F44E0F5A074172FF8E63B +:10068200F580E5A0541F44C0F5A053A01F74082DA7 +:10069200F8E6F580EB600353807FE5A0541F44E049 +:0606A200F5A053A01F2289 +:1004F300E4FFC2A9C2C4D2C2D2B5D2B420B3027F30 +:100503000420B2027F0520B1027F0620B0027F07DC +:10051300D2C4C2C2D2B5D2B420B3027F0820B20281 +:100523007F0920B1027F0A20B0027F0BD2C4D2C25E +:10053300C2B5D2B420B3027F0C20B2027F0D20B12A +:10054300027F0E20B0027F0FD2C4D2C2D2B5C2B492 +:1005530020B3027F1020B2027F1120B1027F12204C +:09056300B0027F13D2A975B0FFAC +:01056C00226C +:100791007580FFE5A0541F4480F5A053A01FE4F528 +:0D07A10080E5A0541F44A0F5A053A01F2226 +:0407CB00D2A07F0534 +:1007CF00000000000000000000000000000000AE6C +:0607DF00071FEE70EB2283 +:0F085200D2A11207CBC2A17F051207CFC2A022ED +:0C086100C2A11207CBD2A17F050207CF75 +:0206A800AD079C +:1006AA00E4FCECC39408748094805024C2A07F05B3 +:1006BA001207CFED30E704D2A18002C2A17F051252 +:1006CA0007CFD2A0ED25E0FD7F051207CF0C80D21F +:0206DA00C2A0BC +:0106DC0022FB +:1006DD00E4FCECC394087480948050171207CBEDA2 +:1006ED0025E0FD30A103430501C2A07F051207CF10 +:0506FD000C80DFAF05D9 +:0107020022D4 +:0B07AE001206A81207B9AF031206A83C +:1007B9001207CBA2A1E433FDC2A07F051207CFAF78 +:0107C900052A +:0107CA00220C +:1007FF00C2A0EF24FF92A17F051207CF1207CBC231 +:08080F00A0D2A17F050207CF72 +:02070300AB0742 +:100705001208527F901207AE1208527F911206A866 +:100715001207B91206DDAD077F011207FF12086146 +:02072500AF051E +:0107270022AF +:10082C00AB071208527F901206A81207B97F41122B +:05083C0007AE02086197 +:0600030000007F21DFFE7A +:0100090022D4 +:1007E500E4FEEEC3940874809480500DD2901200FC +:0907F50003C2901200030E80E91A +:0107FE0022D8 +:1006390053890FE4F58BF58D1207E5D28E309103BE +:10064900308FFAC28E208F1CAF8DEFFEAD8BEDFF80 +:10065900AC06E41201197B967A43798B783C120037 +:080669000E020152C28F7F0056 +:010671002266 +:10000E00EC4D6011E8497017ED33EC3304600DE4EC +:10001E00FCFFFEFD22E933E8330470F80201BE1244 +:10002E00018958046009E4CC248150062850090245 +:10003E0001C82840030201C5C0E0EB4A7044B980F4 +:10004E0006D0E0FB0201B4EF4E701CBD8008EBFF42 +:10005E00EAFEE9FD80EBE98DF0A4FEE5F00200F783 +:10006E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89CD +:10007E00F0A42EFFE435F0CD89F0A42DFEE435F08A +:10008E008067EF4E7005BD80D780C3EF8BF0A4ACB8 +:10009E00F0EE8BF0A42CFCE435F0F8EF8AF0A42CF3 +:1000AE00E5F038FCE433CB8DF0A42CFCE5F03BF806 +:1000BE00EE8AF0A42CFCE5F038F8E433CF89F0A4F6 +:1000CE002CFCE5F038CF3400CE89F0A42FFFE5F0FC +:1000DE003EFEE433C98DF0A42EFEE5F039CD8AF054 +:1000EE00A42FFFE5F03EFEE43DFD33D0E0FB5007CC +:1000FE000BBB000F0201C8EC2CFCEF33FFEE33FEFE +:06010E00ED33FD0201A02B +:1001140075F020800E75F010800575F0087D007E66 +:10012400007F003392D530D5031201D3EC33401055 +:10013400EF33FFEE33FEED33FDEC33FCD5F0ED226F +:0E014400E5F0247EA2D513CC92E7CDCEFF22AB +:10015200EDD2E7CD33EC3392D524814006E4FFFEA5 +:10016200FDFC22FCE4CFCECDCC24E0501174FF8004 +:10017200EDC3CC13CCCD13CDCE13CECF13CF0470A1 +:07018200F030D5DE0201D3CD +:10018900E9D2E7C933E833F892D5EDD2E7CD33ECBC +:0701990033FC5002B2D52235 +:1001A000EC30E7100FBF000C0EBE00080DBD0004C0 +:1001B0000BEB6014A2D5EB13FCED92E7FD2274FF6C +:1001C000FCFDFEFF22E480F8A2D574FF13FC7D80C5 +:0301D000E480EFD9 +:0300000002046790 +:0C046700787FE4F6D8FD7581500204AEE9 +:0E01D300C3E49FFFE49EFEE49DFDE49CFC223D +:10047300020841E493A3F8E493A34003F68001F256 +:1004830008DFF48029E493A3F85407240CC8C3338A +:10049300C4540F4420C8834004F456800146F6DF59 +:1004A300E4800B010204081020408090056DE47E77 +:1004B300019360BCA3FF543F30E509541FFEE4934E +:1004C300A360010ECF54C025E060A840B8E493A315 +:1004D300FAE493A3F8E493A3C8C582C8CAC583CA40 +:1004E300F0A3C8C582C8CAC583CADFE9DEE780BEF8 +:0105C4000036 +:00000001FF diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan.lnp b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan.lnp new file mode 100644 index 0000000..d4379a7 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/Objects/zuolan.lnp @@ -0,0 +1,9 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\iic.obj", +".\Objects\Ultrasonic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/main.c b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/main.c new file mode 100644 index 0000000..649afe8 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/main.c @@ -0,0 +1,203 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ʾ */ +uchar Seg_show_mode; // 0 1 2 ¼ +uchar Control_mode; // 0 1 ť +/* ̷ */ +uchar Key_Slow_Down; +/* */ +uchar Distance_value; // +uchar Para_max = 60; // +uchar Para_min = 10; // +uchar Wring_count; // +bit Wring_flag; // ־ +uchar Para_mode; // 0 1 2 +uchar Vol_level; // ѹȼڿ 1 2 3 4 +bit Led_show_flag; // LED˸ +/* ʱ */ +uchar time_100ms; +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 4) + Seg_show_mode = (++Seg_show_mode) % 3; + + if (Key_Down == 5) + { + if (Seg_show_mode == 1) + Control_mode = (++Control_mode) % 2; + if (Seg_show_mode == 2) + Wring_count = 0; + Para_mode = 0; // лʱťģʽãֹbug + } + if (Seg_show_mode == 1) + { // ģʽ + if (Control_mode == 0) + { + if (Key_Down == 9) + Para_max = (Para_max + 10 > 90) ? 50 + : Para_max + 10; + if (Key_Down == 8) + Para_min = (Para_min + 10 > 40) ? 0 + : Para_min + 10; + } + // ťģʽ + else + { + if (Key_Down == 9) + Para_mode = 1; + if (Key_Down == 8) + Para_mode = 2; + } + } +} +/* ܴ */ +void Seg_Proc() +{ + uchar i; + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + Distance_value = Ut_Wave_Data(); + // + if ((Distance_value < Para_min || Distance_value > Para_max)) + { + // ûбʱ + if (Wring_flag == 0) + { + Wring_count++; + Wring_flag = 1; + } + } + // ûгޣͱflag׼һα + else + { + Wring_flag = 0; + } + // ǴťƲŽвɼѹ + if (Control_mode == 1) + { + Vol_level = Ad_Read(0x03) / 51; + Vol_level = (Vol_level >= 4) ? 4 : Vol_level; // һ£ֹж5ļ + if (Para_mode == 1) + Para_max = Vol_level * 10 + 50; + else if (Para_mode == 2) + Para_min = Vol_level * 10; + } + switch (Seg_show_mode) + { + case 0: + /* */ + Seg_Buf[0] = 11; // A + for (i = 1; i < 5; i++) + { + Seg_Buf[i] = 10; + } + Seg_Buf[5] = (Distance_value / 100 % 10 == 0) ? 10 + : Distance_value / 100 % 10; + Seg_Buf[6] = ((Distance_value / 10 % 10 == 0) && (Seg_Buf[5] == 10)) ? 10 + : Distance_value / 10 % 10; + Seg_Buf[7] = Distance_value % 10; + break; + + case 1: + /* */ + Seg_Buf[0] = 12; // P + Seg_Buf[1] = Control_mode + 1; + Seg_Buf[2] = 10; + Seg_Buf[3] = Para_min / 10 % 10; + Seg_Buf[4] = Para_min % 10; + Seg_Buf[5] = 13; //- + Seg_Buf[6] = Para_max / 10 % 10; + Seg_Buf[7] = Para_max % 10; + break; + + case 2: + /* ¼ */ + Seg_Buf[0] = 14; // E + for (i = 1; i < 7; i++) + { + Seg_Buf[i] = 10; + } + Seg_Buf[7] = (Wring_count > 9) ? 13 + : Wring_count; + break; + } +} + +/* LED */ +void Led_Proc() +{ + ucLed[0] = (Seg_show_mode == 0); + ucLed[1] = (Seg_show_mode == 1); + ucLed[2] = (Seg_show_mode == 2); + ucLed[7] = (Wring_flag == 0) ? 1 + : Led_show_flag; +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (Wring_flag) + { + if (++time_100ms == 100) + { + time_100ms = 0; + Led_show_flag ^= 1; + } + } + else + { + time_100ms = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void main() +{ + System_Init(); + Timer0_Init(); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/main.h b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/main.h new file mode 100644 index 0000000..d697731 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/main.h @@ -0,0 +1,12 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "iic.h" +#include "Ultrasonic.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#include "Init.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/zuolan.uvgui.haze b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/zuolan.uvgui.haze new file mode 100644 index 0000000..797dda6 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/zuolan.uvgui.haze @@ -0,0 +1,1423 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -32000 + -32000 + + + -1 + -1 + + + 9 + 9 + 1543 + 823 + + + + 0 + + 766 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000008000000070000000100000031433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6F6C645C557365725C6D61696E2E6800000000066D61696E2E6800000000A5C2D700FFFFFFFF33433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6F6C645C4472697665725C496E69742E630000000006496E69742E6300000000D9ADC200FFFFFFFF33433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6F6C645C4472697665725C496E69742E680000000006496E69742E6800000000F7B88600FFFFFFFF39433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6F6C645C4472697665725C556C747261736F6E69632E63000000000C556C747261736F6E69632E63000000009CC1B600FFFFFFFF39433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6F6C645C4472697665725C556C747261736F6E69632E68000000000C556C747261736F6E69632E6800000000BCA8E100FFFFFFFF1C443A5C4B65696C5F76355C4335315C496E635C696E7472696E732E680000000009696E7472696E732E6800000000F0A0A100FFFFFFFF25443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF31433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6F6C645C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000094010000660000000006000036020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100006600000070040000D3000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000370200000006000006030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000060300000006000019030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100006600000070040000D3000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200006600000070040000B7010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100001F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000009001000036020000000000004F000000900100001F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000A701000070040000280200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000001F020000000600002302000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000003A020000000600001D030000000000002302000000060000060300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2096 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000C524541445F6F6E6577697265960000000000000005000C524541445F6F6E6577697265094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E67650000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 7 + + main.h + 27 + 1 + 12 + 1 + + 0 + + + ..\Driver\Init.c + 0 + 1 + 1 + 1 + + 0 + + + ..\Driver\Init.h + 16 + 1 + 3 + 1 + + 0 + + + ..\Driver\Ultrasonic.c + 0 + 25 + 32 + 1 + + 0 + + + ..\Driver\Ultrasonic.h + 29 + 1 + 2 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\intrins.h + 0 + 1 + 1 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 5 + 80 + 91 + 1 + + 0 + + + + +
diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/zuolan.uvopt b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/zuolan.uvopt new file mode 100644 index 0000000..0994371 --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/zuolan.uvopt @@ -0,0 +1,258 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 11 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 1 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 1 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 7 + 1 + 1 + 0 + 0 + 0 + ..\Driver\Ultrasonic.c + Ultrasonic.c + 0 + 0 + + + +
diff --git a/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/zuolan.uvproj b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/zuolan.uvproj new file mode 100644 index 0000000..b43bffe --- /dev/null +++ b/题目/模拟题/4T15届模拟3_左岚85/4T15模拟3/User/zuolan.uvproj @@ -0,0 +1,410 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 11 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + iic.c + 1 + ..\Driver\iic.c + + + Ultrasonic.c + 1 + ..\Driver\Ultrasonic.c + + + + + + + +
diff --git a/题目/模拟题/4T15届模拟4_左岚82.5.zip b/题目/模拟题/4T15届模拟4_左岚82.5.zip new file mode 100644 index 0000000..e179385 Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5.zip differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/15届模拟4.pdf b/题目/模拟题/4T15届模拟4_左岚82.5/15届模拟4.pdf new file mode 100644 index 0000000..ab1e393 Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/15届模拟4.pdf differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/.vscode/settings.json b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Init.c b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Init.h b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Key.c b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Key.c new file mode 100644 index 0000000..4e29fd5 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Key.c @@ -0,0 +1,40 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + return temp; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Key.h b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Led.c b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Led.c new file mode 100644 index 0000000..0a39c96 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Led.c @@ -0,0 +1,39 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Led.h b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Led.h new file mode 100644 index 0000000..5756647 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Led.h @@ -0,0 +1,3 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Relay(bit enable); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Seg.c b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Seg.c new file mode 100644 index 0000000..5a02997 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Seg.c @@ -0,0 +1,25 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 +// P C U +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0x8c, 0xc6, 0xc1}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Seg.h b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/iic.c b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/iic.c new file mode 100644 index 0000000..aaabb3c --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/iic.c @@ -0,0 +1,139 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// 写入的值是数字值0-255,而不是模拟值 +void Da_Write(unsigned char dat) +{ + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/iic.h b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/iic.h new file mode 100644 index 0000000..d03a75b --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/iic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Da_Write(unsigned char dat); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/onewire.c b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/onewire.c new file mode 100644 index 0000000..8efce41 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/onewire.c @@ -0,0 +1,98 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "REG52.H" +#include "intrins.h" +sbit DQ = P1 ^ 4; // 单总线数据口 +void Delay4us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 9; + while (--i) + ; +} + +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + Delay4us(); + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0x44); // 启动温度转换 + Delay_OneWire(200); // 等待温度转换 + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0xbe); // 读取温度值 + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/onewire.h b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/Driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Init.lst b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Init.lst new file mode 100644 index 0000000..a2d8b9e --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 04/11/2024 17:06:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Key.lst b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Key.lst new file mode 100644 index 0000000..193f8b8 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Key.lst @@ -0,0 +1,64 @@ +C51 COMPILER V9.59.0.0 KEY 04/11/2024 17:06:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 if (P33 == 0) + 10 1 temp = 4; + 11 1 if (P32 == 0) + 12 1 temp = 5; + 13 1 if (P31 == 0) + 14 1 temp = 6; + 15 1 if (P30 == 0) + 16 1 temp = 7; + 17 1 P44 = 1; + 18 1 P42 = 0; + 19 1 P35 = 1; + 20 1 if (P33 == 0) + 21 1 temp = 8; + 22 1 if (P32 == 0) + 23 1 temp = 9; + 24 1 if (P31 == 0) + 25 1 temp = 10; + 26 1 if (P30 == 0) + 27 1 temp = 11; + 28 1 P44 = 1; + 29 1 P42 = 1; + 30 1 P35 = 0; + 31 1 if (P33 == 0) + 32 1 temp = 12; + 33 1 if (P32 == 0) + 34 1 temp = 13; + 35 1 if (P31 == 0) + 36 1 temp = 14; + 37 1 if (P30 == 0) + 38 1 temp = 15; + 39 1 return temp; + 40 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 83 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Led.lst b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Led.lst new file mode 100644 index 0000000..52f1030 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Led.lst @@ -0,0 +1,63 @@ +C51 COMPILER V9.59.0.0 LED 04/11/2024 17:06:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief ̵ + 23 /// @param enable 0 1 + 24 void Relay(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x10; + 30 1 else + 31 1 temp &= ~(0x10); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 93 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 4 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Seg.lst b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Seg.lst new file mode 100644 index 0000000..0fe35fa --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/Seg.lst @@ -0,0 +1,49 @@ +C51 COMPILER V9.59.0.0 SEG 04/11/2024 17:06:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 + 3 // P C U + 4 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 5 0x8c, 0xc6, 0xc1}; + 6 // λѡ + 7 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 8 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 9 { + 10 1 // ֶ + 11 1 P0 = 0xff; + 12 1 P2 = P2 & 0x1f | 0xe0; + 13 1 + 14 1 // ѡʾλ + 15 1 P0 = seg_wela[wela]; + 16 1 P2 = P2 & 0x1f | 0xc0; + 17 1 P2 &= 0x1f; + 18 1 + 19 1 // ѡʾ + 20 1 P0 = seg_dula[dula]; + 21 1 if (point) + 22 1 P0 &= 0x7f; + 23 1 P2 = P2 & 0x1f | 0xe0; + 24 1 P2 &= 0x1f; + 25 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 22 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/iic.lst b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/iic.lst new file mode 100644 index 0000000..95fdd48 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/iic.lst @@ -0,0 +1,168 @@ +C51 COMPILER V9.59.0.0 IIC 04/11/2024 17:06:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 04/11/2024 17:06:10 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 04/11/2024 17:06:10 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 // 写入的值是数字值0-255,而不是模拟值 + 127 void Da_Write(unsigned char dat) + 128 { + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 + 134 1 I2CSendByte(0x41); + 135 1 I2CWaitAck(); + 136 1 I2CSendByte(dat); + 137 1 I2CWaitAck(); + 138 1 I2CStop(); + 139 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 215 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/main.lst b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/main.lst new file mode 100644 index 0000000..c25ed5f --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/main.lst @@ -0,0 +1,247 @@ +C51 COMPILER V9.59.0.0 MAIN 04/11/2024 17:06:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 7 uchar Seg_Pos; // ָʾ + 8 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 9 + 10 /* ʱ䷽ */ + 11 uchar ucRtc[3] = {0x13, 0x11, 0x11}; // ʼʱ13:11:11 + 12 + 13 /* ʱ䷽ */ + 14 uint time_all_1s; + 15 uchar time_100ms; + 16 /* ʾ */ + 17 uchar Seg_show_mode; // 0 ź 1 ¶ 2 + 18 /* */ + 19 uint freq; + 20 uint T_value_10x; + 21 uchar T_para = 25; + 22 uchar V_out_amp; + 23 /* ж */ + 24 bit Wring_flag; + 25 bit Hot_flag; + 26 bit Led_blink_show; + 27 /* ݴ */ + 28 void Data_Proc() + 29 { + 30 1 if (time_all_1s % 500 == 0) + 31 1 { + 32 2 // ¶ȶȡ + 33 2 T_value_10x = rd_temperature() * 10; + 34 2 Wring_flag = (T_value_10x > T_para * 10); + 35 2 Hot_flag = (T_value_10x > 300); + 36 2 } + 37 1 } + 38 /* ̴ */ + 39 void Key_Proc() + 40 { + 41 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 42 1 if (time_all_1s % 10) + 43 1 return; + 44 1 Key_Val = Key_Read(); + 45 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 46 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 47 1 Key_Old = Key_Val; + 48 1 if (Key_Down == 4) + 49 1 Seg_show_mode = (++Seg_show_mode) % 3; + 50 1 if (Seg_show_mode == 2) + 51 1 { + 52 2 if (Key_Down == 9) + 53 2 T_para = (T_para == 35) ? 20 : T_para + 1; + 54 2 else if (Key_Down == 8) + C51 COMPILER V9.59.0.0 MAIN 04/11/2024 17:06:10 PAGE 2 + + 55 2 T_para = (T_para == 20) ? 35 : T_para - 1; + 56 2 } + 57 1 } + 58 /* ܴ */ + 59 void Seg_Proc() + 60 { + 61 1 uchar i; + 62 1 if (time_all_1s % 20) + 63 1 return; + 64 1 switch (Seg_show_mode) + 65 1 { + 66 2 case 0: + 67 2 /* źŽ */ + 68 2 Seg_Point[6] = 0; + 69 2 Seg_Buf[0] = 11; // P + 70 2 Seg_Buf[1] = 10; + 71 2 Seg_Buf[2] = freq / 100000 % 10; + 72 2 Seg_Buf[3] = freq / 10000 % 10; + 73 2 Seg_Buf[4] = freq / 1000 % 10; + 74 2 Seg_Buf[5] = freq / 100 % 10; + 75 2 Seg_Buf[6] = freq / 10 % 10; + 76 2 Seg_Buf[7] = freq % 10; + 77 2 i = 2; + 78 2 while (i < 7) + 79 2 { + 80 3 if (Seg_Buf[i - 1] == 10 && Seg_Buf[i] == 0) + 81 3 Seg_Buf[i] = 10; + 82 3 else + 83 3 break; + 84 3 } + 85 2 break; + 86 2 + 87 2 case 1: + 88 2 /* ¶Ƚ */ + 89 2 Seg_Point[6] = 1; + 90 2 Seg_Buf[0] = 12; // C + 91 2 Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 92 2 Seg_Buf[5] = (T_value_10x / 100 % 10 == 0) ? 10 + 93 2 : T_value_10x / 100 % 10; + 94 2 Seg_Buf[6] = T_value_10x / 10 % 10; + 95 2 Seg_Buf[7] = T_value_10x % 10; + 96 2 break; + 97 2 case 2: + 98 2 /* */ + 99 2 Seg_Point[6] = 0; + 100 2 Seg_Buf[0] = 13; // U + 101 2 Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 102 2 Seg_Buf[5] = T_para / 100 % 10; + 103 2 Seg_Buf[6] = T_para / 10 % 10; + 104 2 Seg_Buf[7] = T_para % 10; + 105 2 i = 5; + 106 2 while (i < 7) + 107 2 { + 108 3 if (Seg_Buf[i - 1] == 10 && Seg_Buf[i] == 0) + 109 3 Seg_Buf[i] = 10; + 110 3 else + 111 3 break; + 112 3 } + 113 2 break; + 114 2 } + 115 1 } + 116 + C51 COMPILER V9.59.0.0 MAIN 04/11/2024 17:06:10 PAGE 3 + + 117 /* LED */ + 118 void Led_Proc() + 119 { + 120 1 Da_Write(V_out_amp); + 121 1 Relay(Wring_flag); + 122 1 ucLed[0] = (Seg_show_mode == 0); + 123 1 ucLed[1] = (Seg_show_mode == 1); + 124 1 ucLed[7] = Led_blink_show; + 125 1 } + 126 + 127 /* ʱ0жϳʼ */ + 128 void Timer0_Init(void) // 1@12.000MHz + 129 { + 130 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 131 1 TMOD &= 0xF0; // öʱģʽ + 132 1 TMOD |= 0x05; + 133 1 TL0 = 0x18; // öʱʼֵ + 134 1 TH0 = 0xFC; // öʱʼֵ + 135 1 TF0 = 0; // TF0־ + 136 1 TR0 = 1; // ʱ0ʼʱ + 137 1 } + 138 + 139 void Timer1_Init(void) // 1@12.000MHz + 140 { + 141 1 AUXR &= 0xBF; // ʱʱ12Tģʽ + 142 1 TMOD &= 0x0F; // öʱģʽ + 143 1 TL1 = 0x18; // öʱʼֵ + 144 1 TH1 = 0xFC; // öʱʼֵ + 145 1 TF1 = 0; // TF1־ + 146 1 TR1 = 1; // ʱ1ʼʱ + 147 1 ET1 = 1; // ʹܶʱ1ж + 148 1 EA = 1; + 149 1 } + 150 void Timer1_Isr(void) interrupt 3 + 151 { + 152 1 if (++time_all_1s == 1000) + 153 1 { + 154 2 time_all_1s = 0; + 155 2 freq = TH0 << 8 | TL0; + 156 2 if (freq > 2000) + 157 2 V_out_amp = 4.5f * 51; + 158 2 else if (freq < 200) + 159 2 V_out_amp = 0.5f * 51; + 160 2 else + 161 2 V_out_amp = ((float)(freq - 200) / 450.0f + 0.5f) * 51; + 162 2 TH0 = TL0 = 0; + 163 2 } + 164 1 if (++Seg_Pos == 8) + 165 1 Seg_Pos = 0; + 166 1 if (Hot_flag) + 167 1 { + 168 2 if (++time_100ms == 100) + 169 2 { + 170 3 Led_blink_show ^= 1; + 171 3 time_100ms = 0; + 172 3 } + 173 2 } + 174 1 else + 175 1 { + 176 2 time_100ms = 0; + 177 2 Led_blink_show = 0; + 178 2 } + C51 COMPILER V9.59.0.0 MAIN 04/11/2024 17:06:10 PAGE 4 + + 179 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 180 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 181 1 } + 182 + 183 void Delay750ms(void) //@12.000MHz + 184 { + 185 1 unsigned char data i, j, k; + 186 1 + 187 1 _nop_(); + 188 1 _nop_(); + 189 1 i = 35; + 190 1 j = 51; + 191 1 k = 182; + 192 1 do + 193 1 { + 194 2 do + 195 2 { + 196 3 while (--k) + 197 3 ; + 198 3 } while (--j); + 199 2 } while (--i); + 200 1 } + 201 + 202 void main() + 203 { + 204 1 System_Init(); + 205 1 Timer1_Init(); + 206 1 Timer0_Init(); + 207 1 + 208 1 T_value_10x = rd_temperature() * 10; + 209 1 Delay750ms(); + 210 1 while (1) + 211 1 { + 212 2 Data_Proc(); + 213 2 Key_Proc(); + 214 2 Seg_Proc(); + 215 2 Led_Proc(); + 216 2 } + 217 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 971 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 42 1 + IDATA SIZE = ---- ---- + BIT SIZE = 3 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/onewire.lst b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/onewire.lst new file mode 100644 index 0000000..0e22153 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/onewire.lst @@ -0,0 +1,125 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 04/11/2024 17:06:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit DQ = P1 ^ 4; // 单总线数据口 + 10 void Delay4us(void) //@12.000MHz + 11 { + 12 1 unsigned char data i; + 13 1 + 14 1 _nop_(); + 15 1 _nop_(); + 16 1 i = 9; + 17 1 while (--i) + 18 1 ; + 19 1 } + 20 + 21 // + 22 void Delay_OneWire(unsigned int t) + 23 { + 24 1 unsigned char i; + 25 1 while (t--) + 26 1 { + 27 2 for (i = 0; i < 12; i++) + 28 2 ; + 29 2 } + 30 1 } + 31 + 32 // + 33 void Write_DS18B20(unsigned char dat) + 34 { + 35 1 unsigned char i; + 36 1 for (i = 0; i < 8; i++) + 37 1 { + 38 2 DQ = 0; + 39 2 DQ = dat & 0x01; + 40 2 Delay_OneWire(5); + 41 2 DQ = 1; + 42 2 dat >>= 1; + 43 2 } + 44 1 Delay_OneWire(5); + 45 1 } + 46 + 47 // + 48 unsigned char Read_DS18B20(void) + 49 { + 50 1 unsigned char i; + 51 1 unsigned char dat; + 52 1 + 53 1 for (i = 0; i < 8; i++) + C51 COMPILER V9.59.0.0 ONEWIRE 04/11/2024 17:06:10 PAGE 2 + + 54 1 { + 55 2 DQ = 0; + 56 2 dat >>= 1; + 57 2 DQ = 1; + 58 2 Delay4us(); + 59 2 if (DQ) + 60 2 { + 61 3 dat |= 0x80; + 62 3 } + 63 2 Delay_OneWire(5); + 64 2 } + 65 1 return dat; + 66 1 } + 67 + 68 // + 69 bit init_ds18b20(void) + 70 { + 71 1 bit initflag = 0; + 72 1 + 73 1 DQ = 1; + 74 1 Delay_OneWire(12); + 75 1 DQ = 0; + 76 1 Delay_OneWire(80); + 77 1 DQ = 1; + 78 1 Delay_OneWire(10); + 79 1 initflag = DQ; + 80 1 Delay_OneWire(5); + 81 1 + 82 1 return initflag; + 83 1 } + 84 + 85 float rd_temperature() + 86 { + 87 1 unsigned char low, high; + 88 1 init_ds18b20(); + 89 1 Write_DS18B20(0xcc); // 跳过ROM + 90 1 Write_DS18B20(0x44); // 启动温度转换 + 91 1 Delay_OneWire(200); // 等待温度转换 + 92 1 init_ds18b20(); + 93 1 Write_DS18B20(0xcc); // 跳过ROM + 94 1 Write_DS18B20(0xbe); // 读取温度值 + 95 1 low = Read_DS18B20(); + 96 1 high = Read_DS18B20(); + 97 1 return (float)(high << 8 | low) * 0.0625; + 98 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 212 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/zuolan.m51 b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/zuolan.m51 new file mode 100644 index 0000000..872c030 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Listings/zuolan.m51 @@ -0,0 +1,999 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\iic.obj, .\Objects\onewire.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\iic.obj (IIC) + .\Objects\onewire.obj (ONEWIRE) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?SLDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?ULDIV) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0016H UNIT ?DT?SEG + DATA 001EH 0001H UNIT _DATA_GROUP_ + 001FH 0001H *** GAP *** + BIT 0020H.0 0000H.3 UNIT ?BI?MAIN + BIT 0020H.3 0000H.1 UNIT _BIT_GROUP_ + 0020H.4 0000H.4 *** GAP *** + DATA 0021H 002AH UNIT ?DT?MAIN + DATA 004BH 0004H UNIT ?DT?LED + IDATA 004FH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 001BH 0003H ABSOLUTE + CODE 001EH 048EH UNIT ?C?LIB_CODE + CODE 04ACH 018DH UNIT ?PR?SEG_PROC?MAIN + CODE 0639H 00EEH UNIT ?PR?TIMER1_ISR?MAIN + CODE 0727H 008CH UNIT ?C_C51STARTUP + CODE 07B3H 006EH UNIT ?PR?KEY_PROC?MAIN + CODE 0821H 0053H UNIT ?PR?KEY_READ?KEY + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 2 + + + CODE 0874H 004DH UNIT ?C_INITSEG + CODE 08C1H 004CH UNIT ?PR?DATA_PROC?MAIN + CODE 090DH 0044H UNIT ?C?LDIV + CODE 0951H 003BH UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 098CH 003AH UNIT ?PR?_LED_DISP?LED + CODE 09C6H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 09FCH 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 0A31H 0030H UNIT ?PR?LED_PROC?MAIN + CODE 0A61H 002EH UNIT ?PR?MAIN?MAIN + CODE 0A8FH 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 0AB6H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 0ADDH 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 0B03H 0026H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0B29H 0023H UNIT ?PR?RELAY?LED + CODE 0B4CH 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 0B6AH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0B87H 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 0BA1H 001AH UNIT ?PR?_DA_WRITE?IIC + CODE 0BBBH 0015H UNIT ?PR?TIMER1_INIT?MAIN + CODE 0BD0H 0015H UNIT ?PR?I2CWAITACK?IIC + CODE 0BE5H 0014H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0BF9H 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 0C08H 000FH UNIT ?PR?I2CSTART?IIC + CODE 0C17H 000CH UNIT ?PR?I2CSTOP?IIC + CODE 0C23H 0007H UNIT ?PR?DELAY4US?ONEWIRE + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +---------------------------------------------------------------------- +?PR?TIMER1_ISR?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER1_INIT?MAIN + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?DATA_PROC?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 3 + + + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.3 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?DELAY4US?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?DATA_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN ----- ----- 001EH 0001H + +?PR?LED_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_DA_WRITE?IIC + +--> ?PR?RELAY?LED + +?PR?_DA_WRITE?IIC ----- ----- ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CWAITACK?IIC ----- ----- ----- ----- + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?RELAY?LED 0020H.3 0000H.1 ----- ----- + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (MAIN) + + VALUE TYPE NAME + ---------------------------------- + + ------- MODULE MAIN + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 4 + + + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:0025H PUBLIC ucRtc + D:00C0H PUBLIC P4 + D:0028H PUBLIC time_100ms + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + B:0020H.0 PUBLIC Wring_flag + D:00F8H PUBLIC P7 + C:0A31H PUBLIC Led_Proc + D:0029H PUBLIC Seg_Point + D:00A8H PUBLIC IE + D:0031H PUBLIC T_value_10x + C:04ACH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:0033H PUBLIC Seg_Buf + C:07B3H PUBLIC Key_Proc + D:00D8H PUBLIC CCON + C:0A61H PUBLIC main + B:0020H.1 PUBLIC Hot_flag + C:0BE5H PUBLIC Timer0_Init + C:0BBBH PUBLIC Timer1_Init + B:0020H.2 PUBLIC Led_blink_show + D:003BH PUBLIC V_out_amp + D:003CH PUBLIC freq + D:003EH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + C:0639H PUBLIC Timer1_Isr + B:0088H.5 PUBLIC TF0 + B:00A8H.3 PUBLIC ET1 + B:0088H.7 PUBLIC TF1 + D:003FH PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008DH PUBLIC TH1 + D:008AH PUBLIC TL0 + D:0040H PUBLIC time_all_1s + D:008BH PUBLIC TL1 + B:0088H.4 PUBLIC TR0 + B:0088H.6 PUBLIC TR1 + D:0042H PUBLIC T_para + D:0043H PUBLIC ucLed + C:0BF9H PUBLIC Delay750ms + C:08C1H PUBLIC Data_Proc + D:00D0H PUBLIC PSW + ------- PROC DATA_PROC + C:08C1H LINE# 28 + C:08C1H LINE# 29 + C:08C1H LINE# 30 + C:08D0H LINE# 31 + C:08D0H LINE# 33 + C:08E4H LINE# 34 + C:08FBH LINE# 35 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 5 + + + C:090CH LINE# 36 + C:090CH LINE# 37 + ------- ENDPROC DATA_PROC + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:07B3H LINE# 39 + C:07B3H LINE# 40 + C:07B3H LINE# 42 + C:07C2H LINE# 44 + C:07C7H LINE# 45 + C:07D0H LINE# 46 + C:07D6H LINE# 47 + C:07D9H LINE# 48 + C:07E2H LINE# 49 + C:07EDH LINE# 50 + C:07F3H LINE# 51 + C:07F3H LINE# 52 + C:07F9H LINE# 53 + C:080AH LINE# 54 + C:0810H LINE# 55 + C:0820H LINE# 56 + C:0820H LINE# 57 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:001EH SYMBOL i + ------- ENDDO + C:04ACH LINE# 59 + C:04ACH LINE# 60 + C:04ACH LINE# 62 + C:04BEH LINE# 64 + C:04D3H LINE# 65 + C:04D3H LINE# 66 + C:04D3H LINE# 68 + C:04D6H LINE# 69 + C:04D9H LINE# 70 + C:04DCH LINE# 71 + C:04F9H LINE# 72 + C:050DH LINE# 73 + C:0521H LINE# 74 + C:0535H LINE# 75 + C:0549H LINE# 76 + C:0556H LINE# 77 + C:0559H LINE# 78 + C:0567H LINE# 79 + C:0567H LINE# 80 + C:057FH LINE# 81 + C:0588H LINE# 83 + C:0588H LINE# 84 + C:0588H LINE# 85 + C:0588H LINE# 87 + C:0588H LINE# 89 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 6 + + + C:058BH LINE# 90 + C:058EH LINE# 91 + C:059AH LINE# 92 + C:05B8H LINE# 94 + C:05CCH LINE# 95 + C:05D9H LINE# 96 + C:05DAH LINE# 97 + C:05DAH LINE# 99 + C:05DDH LINE# 100 + C:05E0H LINE# 101 + C:05ECH LINE# 102 + C:05F9H LINE# 103 + C:0606H LINE# 104 + C:060FH LINE# 105 + C:0612H LINE# 106 + C:061DH LINE# 107 + C:061DH LINE# 108 + C:062FH LINE# 109 + C:0638H LINE# 111 + C:0638H LINE# 112 + C:0638H LINE# 113 + C:0638H LINE# 114 + C:0638H LINE# 115 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0A31H LINE# 118 + C:0A31H LINE# 119 + C:0A31H LINE# 120 + C:0A36H LINE# 121 + C:0A3DH LINE# 122 + C:0A4CH LINE# 123 + C:0A5AH LINE# 124 + C:0A60H LINE# 125 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:0BE5H LINE# 128 + C:0BE5H LINE# 129 + C:0BE5H LINE# 130 + C:0BE8H LINE# 131 + C:0BEBH LINE# 132 + C:0BEEH LINE# 133 + C:0BF1H LINE# 134 + C:0BF4H LINE# 135 + C:0BF6H LINE# 136 + C:0BF8H LINE# 137 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER1_INIT + C:0BBBH LINE# 139 + C:0BBBH LINE# 140 + C:0BBBH LINE# 141 + C:0BBEH LINE# 142 + C:0BC1H LINE# 143 + C:0BC4H LINE# 144 + C:0BC7H LINE# 145 + C:0BC9H LINE# 146 + C:0BCBH LINE# 147 + C:0BCDH LINE# 148 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 7 + + + C:0BCFH LINE# 149 + ------- ENDPROC TIMER1_INIT + ------- PROC TIMER1_ISR + C:0639H LINE# 150 + C:0656H LINE# 152 + C:0668H LINE# 153 + C:0668H LINE# 154 + C:066CH LINE# 155 + C:0676H LINE# 156 + C:067FH LINE# 157 + C:0684H LINE# 158 + C:068FH LINE# 159 + C:0694H LINE# 161 + C:06C4H LINE# 162 + C:06CAH LINE# 163 + C:06CAH LINE# 164 + C:06D2H LINE# 165 + C:06D4H LINE# 166 + C:06D7H LINE# 167 + C:06D7H LINE# 168 + C:06DFH LINE# 169 + C:06DFH LINE# 170 + C:06E4H LINE# 171 + C:06E6H LINE# 172 + C:06E6H LINE# 173 + C:06E8H LINE# 175 + C:06E8H LINE# 176 + C:06EBH LINE# 177 + C:06EDH LINE# 178 + C:06EDH LINE# 179 + C:0700H LINE# 180 + C:070CH LINE# 181 + ------- ENDPROC TIMER1_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0BF9H LINE# 183 + C:0BF9H LINE# 184 + C:0BF9H LINE# 187 + C:0BFAH LINE# 188 + C:0BFBH LINE# 189 + C:0BFDH LINE# 190 + C:0BFFH LINE# 191 + C:0C01H LINE# 193 + C:0C01H LINE# 195 + C:0C01H LINE# 196 + C:0C03H LINE# 198 + C:0C05H LINE# 199 + C:0C07H LINE# 200 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:0A61H LINE# 202 + C:0A61H LINE# 203 + C:0A61H LINE# 204 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 8 + + + C:0A64H LINE# 205 + C:0A67H LINE# 206 + C:0A6AH LINE# 208 + C:0A7EH LINE# 209 + C:0A81H LINE# 210 + C:0A81H LINE# 211 + C:0A81H LINE# 212 + C:0A84H LINE# 213 + C:0A87H LINE# 214 + C:0A8AH LINE# 215 + C:0A8DH LINE# 216 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:0B29H PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:098CH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:004BH SYMBOL temp + D:004CH SYMBOL temp_old + ------- ENDDO + C:098CH LINE# 5 + C:098CH LINE# 6 + C:098CH LINE# 10 + C:098FH LINE# 11 + C:099EH LINE# 13 + C:09ACH LINE# 14 + C:09B2H LINE# 15 + C:09B2H LINE# 16 + C:09B7H LINE# 17 + C:09BFH LINE# 18 + C:09C2H LINE# 19 + C:09C5H LINE# 20 + C:09C5H LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC RELAY + B:0020H.3 SYMBOL enable + ------- DO + D:004DH SYMBOL temp + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 9 + + + D:004EH SYMBOL temp_old + ------- ENDDO + C:0B29H LINE# 24 + C:0B29H LINE# 25 + C:0B29H LINE# 28 + C:0B2CH LINE# 29 + C:0B31H LINE# 31 + C:0B34H LINE# 32 + C:0B3AH LINE# 33 + C:0B3AH LINE# 34 + C:0B3DH LINE# 35 + C:0B45H LINE# 36 + C:0B48H LINE# 37 + C:0B4BH LINE# 38 + C:0B4BH LINE# 39 + ------- ENDPROC RELAY + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:09C6H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0016H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:09C6H LINE# 8 + C:09C6H LINE# 9 + C:09C6H LINE# 11 + C:09C9H LINE# 12 + C:09D1H LINE# 15 + C:09D8H LINE# 16 + C:09E0H LINE# 17 + C:09E3H LINE# 20 + C:09EAH LINE# 21 + C:09EDH LINE# 22 + C:09F0H LINE# 23 + C:09F8H LINE# 24 + C:09FBH LINE# 25 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 10 + + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0821H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0821H LINE# 2 + C:0821H LINE# 3 + C:0821H LINE# 4 + C:0823H LINE# 5 + C:0825H LINE# 6 + C:0827H LINE# 7 + C:0829H LINE# 8 + C:082BH LINE# 9 + C:082EH LINE# 10 + C:0830H LINE# 11 + C:0833H LINE# 12 + C:0835H LINE# 13 + C:0838H LINE# 14 + C:083AH LINE# 15 + C:083DH LINE# 16 + C:083FH LINE# 17 + C:0841H LINE# 18 + C:0843H LINE# 19 + C:0845H LINE# 20 + C:0848H LINE# 21 + C:084AH LINE# 22 + C:084DH LINE# 23 + C:084FH LINE# 24 + C:0852H LINE# 25 + C:0854H LINE# 26 + C:0857H LINE# 27 + C:0859H LINE# 28 + C:085BH LINE# 29 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 11 + + + C:085DH LINE# 30 + C:085FH LINE# 31 + C:0862H LINE# 32 + C:0864H LINE# 33 + C:0867H LINE# 34 + C:0869H LINE# 35 + C:086CH LINE# 36 + C:086EH LINE# 37 + C:0871H LINE# 38 + C:0873H LINE# 39 + C:0873H LINE# 40 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0B6AH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0B6AH LINE# 3 + C:0B6AH LINE# 4 + C:0B6AH LINE# 5 + C:0B6DH LINE# 6 + C:0B75H LINE# 7 + C:0B78H LINE# 9 + C:0B7BH LINE# 10 + C:0B83H LINE# 11 + C:0B86H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0B8BH SYMBOL _I2C_Delay + C:0BA1H PUBLIC _Da_Write + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 12 + + + D:00B8H PUBLIC IP + C:0ADDH PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + B:00A0H.0 PUBLIC scl + C:0C08H PUBLIC I2CStart + C:0003H PUBLIC _I2CSendAck + C:09FCH PUBLIC _I2CSendByte + C:0BD3H PUBLIC I2CWaitAck + C:0C17H PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:0B87H SYMBOL L?0022 + ------- PROC L?0021 + ------- ENDPROC L?0021 + C:0B87H SYMBOL L?0022 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:0B8BH LINE# 12 + C:0B8BH LINE# 13 + C:0B8BH LINE# 15 + C:0B8BH LINE# 16 + C:0B8CH LINE# 17 + C:0B8DH LINE# 18 + C:0B8EH LINE# 19 + C:0B8FH LINE# 20 + C:0B90H LINE# 21 + C:0B91H LINE# 22 + C:0B92H LINE# 23 + C:0B93H LINE# 24 + C:0B94H LINE# 25 + C:0B95H LINE# 26 + C:0B96H LINE# 27 + C:0B97H LINE# 28 + C:0B98H LINE# 29 + C:0B99H LINE# 30 + C:0B9AH LINE# 31 + C:0BA0H LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:0C08H LINE# 35 + C:0C08H LINE# 36 + C:0C08H LINE# 37 + C:0C0AH LINE# 38 + C:0C0AH LINE# 39 + C:0C0DH LINE# 40 + C:0C0FH LINE# 41 + C:0C14H LINE# 42 + C:0C16H LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:0C17H LINE# 46 + C:0C17H LINE# 47 + C:0C17H LINE# 48 + C:0C19H LINE# 49 + C:0C19H LINE# 50 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 13 + + + C:0C1CH LINE# 51 + C:0C1EH LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:09FCH LINE# 56 + C:09FEH LINE# 57 + C:09FEH LINE# 60 + C:0A0AH LINE# 61 + C:0A0AH LINE# 62 + C:0A0CH LINE# 63 + C:0A11H LINE# 64 + C:0A15H LINE# 65 + C:0A15H LINE# 66 + C:0A17H LINE# 67 + C:0A19H LINE# 69 + C:0A19H LINE# 70 + C:0A1BH LINE# 71 + C:0A1BH LINE# 72 + C:0A20H LINE# 73 + C:0A22H LINE# 74 + C:0A26H LINE# 75 + C:0A2BH LINE# 76 + C:0A2EH LINE# 78 + C:0A30H LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:0ADDH LINE# 82 + C:0ADDH LINE# 83 + C:0ADDH LINE# 86 + C:0AE9H LINE# 87 + C:0AE9H LINE# 88 + C:0AE9H LINE# 89 + C:0AECH LINE# 90 + C:0AF0H LINE# 91 + C:0AF3H LINE# 92 + C:0AF6H LINE# 93 + C:0AF8H LINE# 94 + C:0AFDH LINE# 95 + C:0B00H LINE# 96 + C:0B02H LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + ------- PROC L?0023 + ------- ENDPROC L?0023 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:0BD3H LINE# 100 + C:0BD3H LINE# 101 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 14 + + + C:0BD3H LINE# 104 + C:0BD3H LINE# 105 + C:0BD6H LINE# 106 + C:0BDBH LINE# 107 + C:0BDDH LINE# 108 + C:0BE2H LINE# 110 + C:0BE4H LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:0003H LINE# 114 + C:0003H LINE# 115 + C:0003H LINE# 116 + C:0005H LINE# 117 + C:000AH LINE# 118 + C:000FH LINE# 119 + C:000FH LINE# 120 + C:0012H LINE# 121 + C:0014H LINE# 122 + C:0016H LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:0BA1H LINE# 127 + C:0BA3H LINE# 128 + C:0BA3H LINE# 130 + C:0BA6H LINE# 131 + C:0BA8H LINE# 132 + C:0BABH LINE# 134 + C:0BADH LINE# 135 + C:0BB0H LINE# 136 + C:0BB5H LINE# 137 + C:0BB8H LINE# 138 + ------- ENDPROC _DA_WRITE + ------- ENDMOD IIC + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:0B03H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:0B50H PUBLIC _Delay_OneWire + C:0C23H PUBLIC Delay4us + C:0A8FH PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:0AB6H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:0951H PUBLIC rd_temperature + D:00D0H PUBLIC PSW + ------- PROC DELAY4US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 15 + + + C:0C23H LINE# 10 + C:0C23H LINE# 11 + C:0C23H LINE# 14 + C:0C24H LINE# 15 + C:0C25H LINE# 16 + C:0C27H LINE# 17 + C:0C29H LINE# 19 + ------- ENDPROC DELAY4US + C:0B4CH SYMBOL L?0023 + ------- PROC L?0022 + ------- ENDPROC L?0022 + C:0B4CH SYMBOL L?0023 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:0B50H LINE# 22 + C:0B50H LINE# 23 + C:0B50H LINE# 25 + C:0B5AH LINE# 26 + C:0B5AH LINE# 27 + C:0B69H LINE# 29 + C:0B69H LINE# 30 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:0A8FH LINE# 33 + C:0A91H LINE# 34 + C:0A91H LINE# 36 + C:0A9DH LINE# 37 + C:0A9DH LINE# 38 + C:0A9FH LINE# 39 + C:0AA3H LINE# 40 + C:0AA6H LINE# 41 + C:0AA8H LINE# 42 + C:0AACH LINE# 43 + C:0AAFH LINE# 44 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:0B03H LINE# 48 + C:0B03H LINE# 49 + C:0B03H LINE# 53 + C:0B0FH LINE# 54 + C:0B0FH LINE# 55 + C:0B11H LINE# 56 + C:0B15H LINE# 57 + C:0B17H LINE# 58 + C:0B1AH LINE# 59 + C:0B1DH LINE# 60 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 16 + + + C:0B1DH LINE# 61 + C:0B20H LINE# 62 + C:0B20H LINE# 63 + C:0B23H LINE# 64 + C:0B26H LINE# 65 + C:0B28H LINE# 66 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.3 SYMBOL initflag + ------- ENDDO + C:0AB6H LINE# 69 + C:0AB6H LINE# 70 + C:0AB6H LINE# 71 + C:0AB8H LINE# 73 + C:0ABAH LINE# 74 + C:0AC1H LINE# 75 + C:0AC3H LINE# 76 + C:0ACAH LINE# 77 + C:0ACCH LINE# 78 + C:0AD3H LINE# 79 + C:0AD7H LINE# 80 + C:0ADAH LINE# 82 + C:0ADCH LINE# 83 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:0951H LINE# 85 + C:0951H LINE# 86 + C:0951H LINE# 88 + C:0954H LINE# 89 + C:0959H LINE# 90 + C:095EH LINE# 91 + C:0965H LINE# 92 + C:0968H LINE# 93 + C:096DH LINE# 94 + C:0972H LINE# 95 + C:0977H LINE# 96 + C:097AH LINE# 97 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ?C?FPADD + C:0025H PUBLIC ?C?FPADD + C:0021H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + + ------- MODULE ?C?FPMUL + C:0116H PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FPDIV + C:021FH PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/11/2024 17:06:10 PAGE 17 + + + + ------- MODULE ?C?FCAST + C:02C6H PUBLIC ?C?FCASTC + C:02C1H PUBLIC ?C?FCASTI + C:02BCH PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:02FAH PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?UIDIV + C:037BH PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?SLDIV + C:090DH PUBLIC ?C?SLDIV + ------- ENDMOD ?C?SLDIV + + ------- MODULE ?C?LNEG + C:03D0H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + + ------- MODULE ?C?ULDIV + C:041AH PUBLIC ?C?ULDIV + ------- ENDMOD ?C?ULDIV + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?I2CRECEIVEBYTE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_I2CSENDACK?IIC + +Program Size: data=78.4 xdata=0 code=3114 +LINK/LOCATE RUN COMPLETE. 2 WARNING(S), 0 ERROR(S) diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/ExtDll.iex b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Init.obj b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Init.obj new file mode 100644 index 0000000..54fdb5a Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Init.obj differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Key.obj b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Key.obj new file mode 100644 index 0000000..54cebf3 Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Key.obj differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Led.obj b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Led.obj new file mode 100644 index 0000000..814a165 Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Led.obj differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Seg.obj b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Seg.obj new file mode 100644 index 0000000..233562f Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Seg.obj differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Uart.obj b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Uart.obj differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Ultrasonic.obj b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/Ultrasonic.obj differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/ds1302.obj b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/ds1302.obj differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/iic.obj b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/iic.obj new file mode 100644 index 0000000..69e766a Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/iic.obj differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/main.obj b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/main.obj new file mode 100644 index 0000000..1356667 Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/main.obj differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/onewire.obj b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/onewire.obj new file mode 100644 index 0000000..7539499 Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/onewire.obj differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/test01_左岚.hex b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/test01_左岚.hex new file mode 100644 index 0000000..39fca00 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/test01_左岚.hex @@ -0,0 +1,234 @@ +:100874000843000000000000000008330A0A0A0AC6 +:100884000A0A0A0A082900000000000000000325E3 +:06089400131111014219CD +:1008C100AE40AF417C017DF412037BED4C703C12D4 +:1008D1000951E4FBFA792078411201161202FA8ECD +:1008E100318F32E54275F00AA4FFD3E5329FE5313D +:1008F10095F04003D38001C39200D3E532942CE5F7 +:0C0901003194014003D38001C392012215 +:1007B300AE40AF417C007D0A12037BED4C705E12AC +:1007C30008218F21E5246521FF5521F522E521F438 +:1007D3005FF523852124AF227E00EF6404700B05AF +:1007E3003FE53F75F0038485F03FE53F6402702DDC +:1007F300EF64094E7011E542642370047F14800492 +:10080300E54204FF8F4222E52264087010E542644A +:0D0813001470047F238004E54214FF8F421F +:0108200022B5 +:1004AC00AE40AF417C007D1412037BED4C60030227 +:1004BC000638E53F1470030205881470030205DA50 +:1004CC0024026003020638E4F52F75330B75340AE9 +:1004DC00AE3CAF3DFCFD7BA07A867901F812090D8C +:1004EC00E47B0AFAF9F812090DAF038F35AE3CAF75 +:1004FC003D7C277D1012037B7C007D0A12037B8DD3 +:10050C0036AE3CAF3D7C037DE812037B7C007D0A5C +:10051C0012037B8D37AE3CAF3D7C007D6412037BB8 +:10052C007C007D0A12037B8D38AE3CAF3D7C007D98 +:10053C000A12037B7C007D0A12037B8D39AE3CAF23 +:10054C003D7C007D0A12037B8D3A751E02C3E51EAD +:10055C0094077480948040030206387432251EF888 +:10056C00E6640A60030206387433251EF8E660035D +:10057C000206387433251EF8760A80D1752F017562 +:10058C00330C75370A75360A75350A75340AAE316F +:10059C00AF327C007D6412037B7C007D0A12037BEE +:1005AC00ED4C70047F0A8002AF058F38AE31AF324C +:1005BC007C007D0A12037B7C007D0A12037B8D3943 +:1005CC00AE31AF327C007D0A12037B8D3A22E4F50A +:1005DC002F75330D75370A75360A75350A75340A59 +:1005EC00E54275F0648475F00A8485F038E542754F +:1005FC00F00A8475F00A8485F039E54275F00A84B6 +:10060C0085F03A751E05C3E51E94077480948050DE +:10061C001B7432251EF8E6640A70117433251EF81B +:0C062C00E670097433251EF8760A80DAA7 +:01063800229F +:100A3100AF3B120BA1A2009203120B29AF3F7E0024 +:100A4100EF70047D0180027D008D43EF64014E70E3 +:100A5100047F0180027F008F44A202E433F54A2221 +:100BE500538E7F5389F0438905758A18758CFCC22D +:040BF5008DD28C22EF +:100BBB00538EBF53890F758B18758DFCC28FD28ED8 +:050BCB00D2ABD2AF2205 +:03001B00020639A1 +:10063900C0E0C0F0C083C082C0D075D000C000C087 +:1006490001C002C003C004C005C006C0070541E5DA +:10065900417002054064E87004E54064037062F586 +:1006690040F541AF8CEFAD8AF53CEDF53DD394D023 +:10067900E53C94074005753BE58040C3E53D94C8DA +:10068900E53C94005005753B198030E53D2438FD63 +:10069900E53C34FFFCE41202C1E4FBFA79E178435A +:1006A90012021FE4FBFAF9783F120025E4FBFA79FC +:1006B9004C78421201161202FA8F3B758A00758C2A +:1006C90000053EE53E64087002F53E30011105283B +:1006D900E5286464700EA202B39202F528800575BC +:1006E9002800C2027433253EF8E6FD7429253EF838 +:1006F900E6FBAF3E1209C67443253EF8E6FDAF3E60 +:1007090012098CD007D006D005D004D003D002D06E +:0E07190001D000D0D0D082D083D0F0D0E0321A +:0E0BF90000007F237E337DB6DDFEDEFCDFFADA +:010C070022CA +:100A6100120B6A120BBB120BE5120951E4FBFA7966 +:100A71002078411201161202FA8E318F32120BF9CF +:0E0A81001208C11207B31204AC120A3180F23F +:0C089A00014B00014CFF014D00014EFF1E +:10098C00ED600FA8077401088002C333D8FC424BFA +:10099C00800EA8077401088002C333D8FCF4524BB4 +:1009AC00E54B654C6013E54BF4F580E5A0541F4412 +:0909BC0080F5A053A01F854B4CEF +:0109C500220F +:100B2900300305434D108003534DEFE54D654E608D +:100B390011854D80E5A0541F44A0F5A053A01F8541 +:020B49004D4E0F +:010B4B002287 +:1008A6000E08C0F9A4B0999282F88090FF8CC6C158 +:0A08B600081601020408102040801B +:1009C6007580FFE5A0541F44E0F5A074162FF8E6E5 +:1009D600F580E5A0541F44C0F5A053A01F74082D50 +:1009E600F8E6F580EB600353807FE5A0541F44E0F2 +:0609F600F5A053A01F2232 +:10082100E4FFC2A9C2C4D2C2D2B520B3027F042060 +:10083100B2027F0520B1027F0620B0027F07D2C439 +:10084100C2C2D2B520B3027F0820B2027F0920B113 +:10085100027F0A20B0027F0BD2C4D2C2C2B520B33C +:10086100027F0C20B2027F0D20B1027F0E20B00268 +:020871007F0FF7 +:010873002262 +:100B6A007580FFE5A0541F4480F5A053A01FE4F54B +:0D0B7A0080E5A0541F44A0F5A053A01F2249 +:040B8700D2A07F0574 +:100B8B00000000000000000000000000000000AEAC +:060B9B00071FEE70EB22C3 +:0F0C0800D2A1120B87C2A17F05120B8BC2A022B3 +:0C0C1700C2A1120B87D2A17F05020B8B3B +:0209FC00AD0745 +:1009FE00E4FCECC39408748094805024C2A07F055C +:100A0E00120B8BED30E704D2A18002C2A17F05123A +:100A1E000B8BD2A0ED25E0FD7F05120B8B0C80D247 +:020A2E00C2A064 +:010A300022A3 +:100ADD00E4FCECC39408748094805017120B87EDDE +:100AED0025E0FD30A103430501C2A07F05120B8B4C +:050AFD000C80DFAF05D5 +:010B020022D0 +:030BD0001209FC0B +:100BD300120B87A2A1E433FDC2A07F05120B8BAFDA +:010BE300050C +:010BE40022EE +:10000300C2A0EF24FF92A17F05120B8B120B87C2B4 +:08001300A0D2A17F05020B8BB6 +:100BA100AB07120C087F90120BD07F41120BD0AF14 +:0A0BB100031209FC120BD3020C170B +:060C230000007F09DFFE66 +:010C290022A8 +:040B4C007F057E00A3 +:100B5000EF1FAA0670011E4A600FE4FDEDC3940C5E +:090B60007480948050EA0D80F3CA +:010B69002269 +:020A8F00A907B5 +:100A9100E4FBEBC39408748094805012C294E91370 +:100AA1009294120B4CD294E9C313F90B80E47F05A5 +:050AB1007E00020B5065 +:100B0300E4FBEBC39408748094805017C294ECC345 +:100B130013FCD294120C23309403430480120B4C25 +:050B23000B80DFAF04B0 +:010B280022AA +:100AB600C203D2947F0C7E00120B50C2947F507EEC +:100AC60000120B50D2947F0A7E00120B50A2949211 +:060AD60003120B4CA20309 +:010ADC0022F7 +:10095100120AB67FCC120A8F7F44120A8F7FC87E9B +:1009610000120B50120AB67FCC120A8F7FBE120AF8 +:100971008F120B03A907120B03EFAD01FCEC12025E +:0B098100C1E4FBFA7980783D0201160A +:10001E00020366E86480F8E933E83360110460F0A7 +:10002E00ED33EC337009E8FCE9FDEAFEEBFF220448 +:10003E0060DED3EB9FEA9EE99DE8C2E78CF0C2F743 +:10004E0095F0400CE8CCF8E9CDF9EACEFAEBCFFB0F +:10005E0012033185D0F05804700320D5B3E8047034 +:10006E00075002B2D502037092D5EC0460F7E4CCCF +:10007E00C0E0C398F8603B94186008400DD0E0FBD8 +:10008E00020348E4FBFAC9FC8028E830E406E4C920 +:10009E00FBE4CAFCE830E305E4C9CACBFCE854072C +:1000AE006010F8C3E913F9EA13FAEB13FBEC13FC37 +:1000BE00D8F130F52FC3E49CFCEF9BFFEE9AFEEDDA +:1000CE0099FDD0E0FBEF4E4D4C701222DB03020384 +:1000DE006DEC2CFCEF33FFEE33FEED33FDED30E730 +:1000EE00EB020348EF2BFFEE3AFEED39FDD0E0FBBD +:1000FE0050130BBB0003020370ED13FDEE13FEEF66 +:08010E0013FFEC13FC0203488F +:10011600EC4D6011E8497017ED33EC3304600DE4E3 +:10012600FCFFFEFD22E933E8330470F80203661291 +:10013600033158046009E4CC248150062850090292 +:10014600037028400302036DC0E0EB4A7044B98097 +:1001560006D0E0FB02035CEF4E701CBD8008EBFF8F +:10016600EAFEE9FD80EBE98DF0A4FEE5F00201FF71 +:10017600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89C4 +:10018600F0A42EFFE435F0CD89F0A42DFEE435F081 +:100196008067EF4E7005BD80D780C3EF8BF0A4ACAF +:1001A600F0EE8BF0A42CFCE435F0F8EF8AF0A42CEA +:1001B600E5F038FCE433CB8DF0A42CFCE5F03BF8FD +:1001C600EE8AF0A42CFCE5F038F8E433CF89F0A4ED +:1001D6002CFCE5F038CF3400CE89F0A42FFFE5F0F3 +:1001E6003EFEE433C98DF0A42EFEE5F039CD8AF04B +:1001F600A42FFFE5F03EFEE43DFD33D0E0FB5007C3 +:100206000BBB000F020370EC2CFCEF33FFEE33FE4A +:06021600ED33FD02034878 +:10021C00020370EC5D046005E85904700302036688 +:10022C00120331580460F6EC4860F2EC7004FDFEE9 +:10023C00FF22C860DB2481C85009C39860025006B5 +:10024C0002036D9850CAF582E9294B4A7005AB82BE +:10025C0002035C75F0007C1A7880C3EF9BEE9AED7C +:10026C0099400DC3EF9BFFEE9AFEED99FDE842F02D +:10027C00DC23ACF0D0E0FFD0E0FED0E0FDAB822080 +:10028C00E7101BEB60BAEC2CFCEF33FFEE33FEED0A +:10029C0033FD020348E803F830E705C0F075F000C1 +:1002AC00EF2FFFEE33FEED33FD40B830E7C280AAEE +:1002BC0075F020800E75F010800575F0087D007EBD +:1002CC00007F003392D530D5031203D0EC334010AD +:1002DC00EF33FFEE33FEED33FDEC33FCD5F0ED22C6 +:0E02EC00E5F0247EA2D513CC92E7CDCEFF2202 +:1002FA00EDD2E7CD33EC3392D524814006E4FFFEFC +:10030A00FDFC22FCE4CFCECDCC24E0501174FF805A +:10031A00EDC3CC13CCCD13CDCE13CECF13CF0470F7 +:07032A00F030D5DE0203D024 +:10033100E9D2E7C933E833F892D5EDD2E7CD33EC12 +:0703410033FC5002B2D5228B +:10034800EC30E7100FBF000C0EBE00080DBD000416 +:100358000BEB6014A2D5EB13FCED92E7FD2274FFC2 +:10036800FCFDFEFF22E480F8A2D574FF13FC7D801B +:03037800E480EF2F +:03000000020727CD +:0C072700787FE4F6D8FD75814E02076E65 +:10037B00BC000BBE0029EF8DF084FFADF022E4CC66 +:10038B00F875F008EF2FFFEE33FEEC33FCEE9DEC2F +:10039B00984005FCEE9DFE0FD5F0E9E4CEFD22ED75 +:1003AB00F8F5F0EE8420D21CFEADF075F008EF2FBF +:1003BB00FFED33FD4007985006D5F0F222C398FDB0 +:0503CB000FD5F0EA224D +:10090D00C2D5E830E70FB2D5E4C39BFBE49AFAE415 +:10091D0099F9E498F8EC30E717B2D51209431204AF +:10092D001AE4C39BFBE49AFAE499F9E498F880037E +:10093D0012041A30D50DE4C39FFFE49EFEE49DFD25 +:04094D00E49CFC2208 +:0E03D000C3E49FFFE49EFEE49DFDE49CFC223E +:10073300020A61E493A3F8E493A34003F68001F271 +:1007430008DFF48029E493A3F85407240CC8C333C7 +:10075300C4540F4420C8834004F456800146F6DF96 +:10076300E4800B0102040810204080900874E47EAA +:10077300019360BCA3FF543F30E509541FFEE4938B +:10078300A360010ECF54C025E060A840B8E493A352 +:10079300FAE493A3F8E493A3C8C582C8CAC583CA7D +:1007A300F0A3C8C582C8CAC583CADFE9DEE780BE35 +:0108C0000037 +:1003DE0075F008758200EF2FFFEE33FECD33CDCCD6 +:1003EE0033CCC58233C5829BED9AEC99E582984059 +:1003FE000CF582EE9BFEED9AFDEC99FC0FD5F0D636 +:10040E00E4CEFBE4CDFAE4CCF9A88222B800C1B95F +:10041E000059BA002DEC8BF084CFCECDFCE5F0CB9D +:10042E00F97818EF2FFFEE33FEED33FDEC33FCEBD6 +:10043E0033FB10D703994004EB99FB0FD8E5E4F991 +:10044E00FA227818EF2FFFEE33FEED33FDEC33FC7E +:10045E00C933C910D7059BE99A4007EC9BFCE99A72 +:10046E00F90FD8E0E4C9FAE4CCFB2275F010EF2FB7 +:10047E00FFEE33FEED33FDCC33CCC833C810D707B7 +:10048E009BEC9AE899400AED9BFDEC9AFCE899F8F2 +:0E049E000FD5F0DAE4CDFBE4CCFAE4C8F92285 +:00000001FF diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/zuolan b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/zuolan new file mode 100644 index 0000000..7a02407 Binary files /dev/null and b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/zuolan differ diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/zuolan.build_log.htm b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..0029c0c --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/zuolan.build_log.htm @@ -0,0 +1,46 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: STCMON51.DLL V1, 0, 10, 0 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\demo_zuolan_new\User\zuolan.uvproj +Project File Date: 04/11/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling iic.c... +compiling onewire.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?I2CRECEIVEBYTE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_I2CSENDACK?IIC +Program Size: data=78.4 xdata=0 code=3114 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 2 Warning(s). +
+ + diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/zuolan.lnp b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/zuolan.lnp new file mode 100644 index 0000000..fcba125 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/Objects/zuolan.lnp @@ -0,0 +1,9 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\iic.obj", +".\Objects\onewire.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/main.c b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/main.c new file mode 100644 index 0000000..9ee9c79 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/main.c @@ -0,0 +1,217 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ʱ䷽ */ +uchar ucRtc[3] = {0x13, 0x11, 0x11}; // ʼʱ13:11:11 + +/* ʱ䷽ */ +uint time_all_1s; +uchar time_100ms; +/* ʾ */ +uchar Seg_show_mode; // 0 ź 1 ¶ 2 +/* */ +uint freq; +uint T_value_10x; +uchar T_para = 25; +uchar V_out_amp; +/* ж */ +bit Wring_flag; +bit Hot_flag; +bit Led_blink_show; +/* ݴ */ +void Data_Proc() +{ + if (time_all_1s % 500 == 0) + { + // ¶ȶȡ + T_value_10x = rd_temperature() * 10; + Wring_flag = (T_value_10x > T_para * 10); + Hot_flag = (T_value_10x > 300); + } +} +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (time_all_1s % 10) + return; + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 4) + Seg_show_mode = (++Seg_show_mode) % 3; + if (Seg_show_mode == 2) + { + if (Key_Down == 9) + T_para = (T_para == 35) ? 20 : T_para + 1; + else if (Key_Down == 8) + T_para = (T_para == 20) ? 35 : T_para - 1; + } +} +/* ܴ */ +void Seg_Proc() +{ + uchar i; + if (time_all_1s % 20) + return; + switch (Seg_show_mode) + { + case 0: + /* źŽ */ + Seg_Point[6] = 0; + Seg_Buf[0] = 11; // P + Seg_Buf[1] = 10; + Seg_Buf[2] = freq / 100000 % 10; + Seg_Buf[3] = freq / 10000 % 10; + Seg_Buf[4] = freq / 1000 % 10; + Seg_Buf[5] = freq / 100 % 10; + Seg_Buf[6] = freq / 10 % 10; + Seg_Buf[7] = freq % 10; + i = 2; + while (i < 7) + { + if (Seg_Buf[i - 1] == 10 && Seg_Buf[i] == 0) + Seg_Buf[i] = 10; + else + break; + } + break; + + case 1: + /* ¶Ƚ */ + Seg_Point[6] = 1; + Seg_Buf[0] = 12; // C + Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + Seg_Buf[5] = (T_value_10x / 100 % 10 == 0) ? 10 + : T_value_10x / 100 % 10; + Seg_Buf[6] = T_value_10x / 10 % 10; + Seg_Buf[7] = T_value_10x % 10; + break; + case 2: + /* */ + Seg_Point[6] = 0; + Seg_Buf[0] = 13; // U + Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + Seg_Buf[5] = T_para / 100 % 10; + Seg_Buf[6] = T_para / 10 % 10; + Seg_Buf[7] = T_para % 10; + i = 5; + while (i < 7) + { + if (Seg_Buf[i - 1] == 10 && Seg_Buf[i] == 0) + Seg_Buf[i] = 10; + else + break; + } + break; + } +} + +/* LED */ +void Led_Proc() +{ + Da_Write(V_out_amp); + Relay(Wring_flag); + ucLed[0] = (Seg_show_mode == 0); + ucLed[1] = (Seg_show_mode == 1); + ucLed[7] = Led_blink_show; +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TMOD |= 0x05; + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ +} + +void Timer1_Init(void) // 1@12.000MHz +{ + AUXR &= 0xBF; // ʱʱ12Tģʽ + TMOD &= 0x0F; // öʱģʽ + TL1 = 0x18; // öʱʼֵ + TH1 = 0xFC; // öʱʼֵ + TF1 = 0; // TF1־ + TR1 = 1; // ʱ1ʼʱ + ET1 = 1; // ʹܶʱ1ж + EA = 1; +} +void Timer1_Isr(void) interrupt 3 +{ + if (++time_all_1s == 1000) + { + time_all_1s = 0; + freq = TH0 << 8 | TL0; + if (freq > 2000) + V_out_amp = 4.5f * 51; + else if (freq < 200) + V_out_amp = 0.5f * 51; + else + V_out_amp = ((float)(freq - 200) / 450.0f + 0.5f) * 51; + TH0 = TL0 = 0; + } + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (Hot_flag) + { + if (++time_100ms == 100) + { + Led_blink_show ^= 1; + time_100ms = 0; + } + } + else + { + time_100ms = 0; + Led_blink_show = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} + +void main() +{ + System_Init(); + Timer1_Init(); + Timer0_Init(); + + T_value_10x = rd_temperature() * 10; + Delay750ms(); + while (1) + { + Data_Proc(); + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/main.h b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/main.h new file mode 100644 index 0000000..3d4f64b --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/main.h @@ -0,0 +1,13 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "Init.h" +#include "iic.h" +#include "onewire.h" + +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/zuolan.uvgui.haze b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/zuolan.uvgui.haze new file mode 100644 index 0000000..82713ce --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/zuolan.uvgui.haze @@ -0,0 +1,2628 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 58 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 2 + 3 + + -32000 + -32024 + + + -1 + -1 + + + 302 + 348 + 1388 + 790 + + + + 0 + + 460 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000004000000030000000100000032433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6E65775C4472697665725C5365672E6300000000055365672E6300000000C5D4F200FFFFFFFF32433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6E65775C4472697665725C5365672E6800000000055365672E6800000000FFDC7800FFFFFFFF25443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF31433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6E65775C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000B70000007E0000000006000033020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + F8020000B4010000D405000021020000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B0000000EB010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B0000000EB010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B0000000EB010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B0000000EB010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000001C02000000060000E5020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000001F020000B40000001F020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000066000000B000000066000000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000001F020000B40000001F020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000001F020000B40000001F020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000F8020000B4010000D405000021020000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C00000180004000000000000044040000B4010000D405000005030000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFB30000004F000000B700000004020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100002D020000000000004F000000B3000000040200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000064010000F5020000D4050000760300000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000000402000000060000080200000100000001000010040000000100000074FDFFFFFFFFFFFFFFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000310200000006000014030000000000000802000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2026 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000250319600000000000000030002503103736275027362000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000000060000BC000000 + + + 16 + 940100007E00000000060000EB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000C7010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000C7010000 + + + 16 + BE000000D5000000A10100008C020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD050000A3000000 + + + 16 + BE000000D5000000F602000042010000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D50000004E02000065020000 + + + + 1936 + 1936 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D50000004E02000065020000 + + + + 1937 + 1937 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D50000004E02000065020000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000C7010000 + + + 16 + BE000000D5000000A10100008C020000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000C7010000 + + + 16 + BE000000D5000000A10100008C020000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000EF02000000060000EF020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000E401000000030000D7020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F2020000FD050000F2020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 940100006300000000060000BC000000 + + + 16 + BE000000D5000000F602000042010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD050000A3000000 + + + 16 + BE000000D5000000F602000042010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD050000A3000000 + + + 16 + BE000000D5000000F602000042010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD050000A3000000 + + + 16 + BE000000D5000000F602000042010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD050000A3000000 + + + 16 + BE000000D5000000F602000042010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + BE000000D50000004E02000065020000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000C7010000 + + + 16 + BE000000D5000000A10100008C020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F2020000FD050000F2020000 + + + 16 + BE000000D5000000F602000042010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000F2020000FD050000F2020000 + + + 16 + BE000000D5000000A10100008C020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D50000004E02000065020000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FB010000FD050000BE020000 + + + 16 + BE000000D50000004E02000065020000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 010000001C0000007002000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2618 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF94010000BC00000000060000C0000000010000000100001004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000940100007E00000000060000EB000000940100004F00000000060000BC0000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000CF010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000E0010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100000F020000000000004F00000090010000E00100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000E001000000060000E40100000100000001000010040000000100000065FFFFFF1C01000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB090000018000800000010000000403000013020000000600000603000004030000E401000000060000D702000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032010000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFF00030000E401000004030000D702000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000D702000000060000DB0200000100000001000010040000000100000051FEFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000000A030000000600001403000000000000DB02000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2026 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000250319600000000000000030002503103736275027362000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 3 + + ..\Driver\Seg.c + 0 + 1 + 1 + 1 + + 0 + + + ..\Driver\Seg.h + 0 + 1 + 1 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 8 + 186 + 213 + 1 + + 0 + + + + +
diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/zuolan.uvopt b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/zuolan.uvopt new file mode 100644 index 0000000..69f5b89 --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/zuolan.uvopt @@ -0,0 +1,335 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + + + + + + + + + + + BIN\STCMON51.DLL + + + + 0 + STCMON51 + -S3 -B115200 -O0 -U0 + + + 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 + VDM51 + + + + + + 0 + 0 + 102 + 1 +
-16776093
+ 0 + 0 + 0 + 0 + 0 + 1 + C:\Users\haze\Desktop\demo_zuolan_new\User\MAIN.C + + +
+ + 1 + 0 + 52 + 1 +
-16776415
+ 0 + 0 + 0 + 0 + 0 + 1 + C:\Users\haze\Desktop\demo_zuolan_new\User\main.c + + +
+
+ + + 0 + 1 + Seg_show_mode,0x0A + + + 1 + 1 + freq + + + 2 + 1 + TL0,0x0A + + + 3 + 1 + TH0,0x0A + + + 4 + 1 + time_all_1s + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + +
+
+ + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 1 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + +
diff --git a/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/zuolan.uvproj b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/zuolan.uvproj new file mode 100644 index 0000000..c61709d --- /dev/null +++ b/题目/模拟题/4T15届模拟4_左岚82.5/4T15届模拟4/User/zuolan.uvproj @@ -0,0 +1,410 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 10 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + iic.c + 1 + ..\Driver\iic.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + + + + + +
diff --git a/题目/真题/1 第一届省赛_左岚/第1届省赛-多功能红外控制器.pdf b/题目/真题/1 第一届省赛_左岚/第1届省赛-多功能红外控制器.pdf new file mode 100644 index 0000000..b3c0497 Binary files /dev/null and b/题目/真题/1 第一届省赛_左岚/第1届省赛-多功能红外控制器.pdf differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛.png b/题目/真题/10 第十届国赛_左岚/第十届国赛.png new file mode 100644 index 0000000..6d9eb0d Binary files /dev/null and b/题目/真题/10 第十届国赛_左岚/第十届国赛.png differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/.vscode/settings.json b/题目/真题/10 第十届国赛_左岚/第十届国赛/.vscode/settings.json new file mode 100644 index 0000000..91be012 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/.vscode/settings.json @@ -0,0 +1,20 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp", + "string.h": "c", + "key.h": "c" + } +} diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Init.c b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Init.h b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Key.c b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Key.c new file mode 100644 index 0000000..da3479c --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Key.c @@ -0,0 +1,40 @@ +#include "Key.h" +unsigned char Key_Read() { + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) temp = 4; + if (P32 == 0) temp = 5; + if (P31 == 0) temp = 6; + if (P30 == 0) temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) temp = 8; + if (P32 == 0) temp = 9; + if (P31 == 0) temp = 10; + if (P30 == 0) temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) temp = 12; + if (P32 == 0) temp = 13; + if (P31 == 0) temp = 14; + if (P30 == 0) temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) temp = 16; + if (P32 == 0) temp = 17; + if (P31 == 0) temp = 18; + if (P30 == 0) temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Key.h b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Led.c b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Led.c new file mode 100644 index 0000000..1c8922e --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Led.c @@ -0,0 +1,75 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief +/// @param enable 0 1 +void Beep(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x40; + else + temp &= ~(0x40); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ĸ߻ǵ͵ƽ +/// @param enable 0 1 +void MOTOR(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x20; + else + temp &= ~(0x20); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Led.h b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Led.h new file mode 100644 index 0000000..abc3b79 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Led.h @@ -0,0 +1,5 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Beep(bit enable); +void MOTOR(bit enable); +void Relay(bit enable); \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Seg.c b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Seg.c new file mode 100644 index 0000000..6b5fffd --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Seg.c @@ -0,0 +1,20 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 C L n P +code char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, + 0x80, 0x90, 0xff, 0xc6, 0xc7, 0xab, 0x8c}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) { + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = 0x01 << wela; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Seg.h b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Uart.c b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Uart.c new file mode 100644 index 0000000..4494a05 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Uart.c @@ -0,0 +1,21 @@ +#include "Uart.h" +void Uart1_Init(void) // 4800bps@12.000MHz +{ + SCON = 0x50; // 8λ,ɱ䲨 + AUXR &= 0xBF; // ʱʱ12Tģʽ + AUXR &= 0xFE; // 1ѡʱ1Ϊʷ + TMOD &= 0x0F; // öʱģʽ + TL1 = 0xCC; // öʱʼֵ + TH1 = 0xFF; // öʱʼֵ + ET1 = 0; // ֹʱж + TR1 = 1; // ʱ1ʼʱ + ES = 1; // ʹܴ1ж + EA = 1; +} + +extern char putchar(char ch) { + SBUF = ch; // chдSBUF + while (TI == 0); // ȴ + TI = 0; // ɱ־ + return ch; +} \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Uart.h b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Uart.h new file mode 100644 index 0000000..0620fac --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Uart.h @@ -0,0 +1,3 @@ +#include "STC15F2K60S2.H" +#include "stdio.h" +void Uart1_Init(); \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Ultrasonic.c b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Ultrasonic.c new file mode 100644 index 0000000..33abcc4 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Ultrasonic.c @@ -0,0 +1,56 @@ +#include "Ultrasonic.h" +#include "intrins.h" + +sbit Tx = P1 ^ 0; +sbit Rx = P1 ^ 1; +void Delay12us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 33; // 38 + while (--i) + ; +} + +void Ut_Wave_Init() +{ + unsigned char i; + // 840kHzķ + // f=40kHz->T=1/f=0.000025s=25us + // 12.5us 1 12.5us 0 + for (i = 0; i < 8; i++) + { + Tx = 1; + Delay12us(); + Tx = 0; + Delay12us(); + } +} + +unsigned char Ut_Wave_Data() +{ + unsigned int time; + CH = CL = 0; // PCAĴֵ + CCON = 0; // ʼPCAƼĴ/PCAʱֹͣ/CF/ + + EA = 0; // رж + Ut_Wave_Init(); // ͳź + EA = 1; // ж + CR = 1; // PCAʼ + while (Rx && !CF) // TF1 + ; // ȴ + CR = 0; // PCAֹͣ + if (CF == 0) + { + time = CH << 8 | CL; // λΪ + // L=V*T/2 + return (time * 0.017); // صĵλcm + } + else + { + CF = 0; + return 0; + } +} \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Ultrasonic.h b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Ultrasonic.h new file mode 100644 index 0000000..bea5589 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/Ultrasonic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.h" +unsigned char Ut_Wave_Data(); \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/iic.c b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/iic.c new file mode 100644 index 0000000..e927de6 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/iic.c @@ -0,0 +1,194 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. + 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" + +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) { + do { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) { + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) { + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) { + unsigned char i; + + for (i = 0; i < 8; i++) { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) { + sda = 1; + } else { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) { + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) { + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) { + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +unsigned char Ad_Read(unsigned char addr) { + unsigned char temp; + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + I2CStart(); + I2CSendByte(0x91); + I2CWaitAck(); + temp = I2CReceiveByte(); + I2CSendAck(1); + I2CStop(); + return temp; +} +// 写入的值是数字值0-255,而不是模拟值 +void Da_Write(unsigned char dat) { + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} + +/// @brief EEPROM 写函数 +/// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 写入的数组大小 +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, + unsigned char num) { + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); // 写入的数据的地址 + I2CWaitAck(); + while (num--) { + I2CSendByte(*EEPROM_String++); + I2CWaitAck(); + I2C_Delay(200); + } + I2C_Delay(255); + I2C_Delay(255); + I2C_Delay(255); + I2C_Delay(255); + I2CStop(); +} +/// @brief EEPROM 读函数 +/// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 读取的数组大小 +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, + unsigned char num) { + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); + I2CWaitAck(); + + // 选择芯片为EEPROM,模式为读 + I2CStart(); + I2CSendByte(0xA1); + I2CWaitAck(); + while (num--) { + *EEPROM_String++ = I2CReceiveByte(); + if (num) + I2CSendAck(0); + else + I2CSendAck(1); // 停止读取 + } + I2CStop(); +} \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/iic.h b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/iic.h new file mode 100644 index 0000000..a925af9 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/iic.h @@ -0,0 +1,5 @@ +#include "STC15F2K60S2.H" +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/onewire.c b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/onewire.c new file mode 100644 index 0000000..8efce41 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/onewire.c @@ -0,0 +1,98 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "REG52.H" +#include "intrins.h" +sbit DQ = P1 ^ 4; // 单总线数据口 +void Delay4us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 9; + while (--i) + ; +} + +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + Delay4us(); + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0x44); // 启动温度转换 + Delay_OneWire(200); // 等待温度转换 + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0xbe); // 读取温度值 + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/onewire.h b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/Driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Init.lst b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Init.lst new file mode 100644 index 0000000..7ea9286 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 05/16/2024 09:11:54 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Key.lst b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Key.lst new file mode 100644 index 0000000..ea158f3 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Key.lst @@ -0,0 +1,64 @@ +C51 COMPILER V9.59.0.0 KEY 05/16/2024 09:11:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() { + 3 1 unsigned char temp = 0; + 4 1 ET0 = 0; + 5 1 P44 = 0; + 6 1 P42 = 1; + 7 1 P35 = 1; + 8 1 P34 = 1; + 9 1 if (P33 == 0) temp = 4; + 10 1 if (P32 == 0) temp = 5; + 11 1 if (P31 == 0) temp = 6; + 12 1 if (P30 == 0) temp = 7; + 13 1 P44 = 1; + 14 1 P42 = 0; + 15 1 P35 = 1; + 16 1 P34 = 1; + 17 1 if (P33 == 0) temp = 8; + 18 1 if (P32 == 0) temp = 9; + 19 1 if (P31 == 0) temp = 10; + 20 1 if (P30 == 0) temp = 11; + 21 1 P44 = 1; + 22 1 P42 = 1; + 23 1 P35 = 0; + 24 1 P34 = 1; + 25 1 if (P33 == 0) temp = 12; + 26 1 if (P32 == 0) temp = 13; + 27 1 if (P31 == 0) temp = 14; + 28 1 if (P30 == 0) temp = 15; + 29 1 P44 = 1; + 30 1 P42 = 1; + 31 1 P35 = 1; + 32 1 P34 = 0; + 33 1 if (P33 == 0) temp = 16; + 34 1 if (P32 == 0) temp = 17; + 35 1 if (P31 == 0) temp = 18; + 36 1 if (P30 == 0) temp = 19; + 37 1 ET0 = 1; + 38 1 P3 = 0xff; + 39 1 return temp; + 40 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Led.lst b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Led.lst new file mode 100644 index 0000000..95fa772 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Led.lst @@ -0,0 +1,101 @@ +C51 COMPILER V9.59.0.0 LED 05/16/2024 09:11:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief + 23 /// @param enable 0 1 + 24 void Beep(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~(0x40); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 /// @brief ̵ + 41 /// @param enable 0 1 + 42 void Relay(bit enable) + 43 { + 44 1 static unsigned char temp = 0x00; + 45 1 static unsigned char temp_old = 0xff; + 46 1 if (enable) + 47 1 temp |= 0x10; + 48 1 else + 49 1 temp &= ~(0x10); + 50 1 if (temp != temp_old) + 51 1 { + 52 2 P0 = temp; + 53 2 P2 = P2 & 0x1f | 0xa0; + 54 2 P2 &= 0x1f; + C51 COMPILER V9.59.0.0 LED 05/16/2024 09:11:53 PAGE 2 + + 55 2 temp_old = temp; + 56 2 } + 57 1 } + 58 /// @brief ĸ߻ǵ͵ƽ + 59 /// @param enable 0 1 + 60 void MOTOR(bit enable) + 61 { + 62 1 static unsigned char temp = 0x00; + 63 1 static unsigned char temp_old = 0xff; + 64 1 if (enable) + 65 1 temp |= 0x20; + 66 1 else + 67 1 temp &= ~(0x20); + 68 1 if (temp != temp_old) + 69 1 { + 70 2 P0 = temp; + 71 2 P2 = P2 & 0x1f | 0xa0; + 72 2 P2 &= 0x1f; + 73 2 temp_old = temp; + 74 2 } + 75 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 163 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 8 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 3 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Seg.lst b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Seg.lst new file mode 100644 index 0000000..7b85a77 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Seg.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 SEG 05/16/2024 09:11:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 C L n P + 3 code char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, + 4 0x80, 0x90, 0xff, 0xc6, 0xc7, 0xab, 0x8c}; + 5 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) { + 6 1 // ֶ + 7 1 P0 = 0xff; + 8 1 P2 = P2 & 0x1f | 0xe0; + 9 1 + 10 1 // ѡʾλ + 11 1 P0 = 0x01 << wela; + 12 1 P2 = P2 & 0x1f | 0xc0; + 13 1 P2 &= 0x1f; + 14 1 + 15 1 // ѡʾ + 16 1 P0 = seg_dula[dula]; + 17 1 if (point) P0 &= 0x7f; + 18 1 P2 = P2 & 0x1f | 0xe0; + 19 1 P2 &= 0x1f; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 60 ---- + CONSTANT SIZE = 15 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Uart.lst b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Uart.lst new file mode 100644 index 0000000..2f60646 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Uart.lst @@ -0,0 +1,45 @@ +C51 COMPILER V9.59.0.0 UART 05/16/2024 09:11:54 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 4800bps@12.000MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR &= 0xBF; // ʱʱ12Tģʽ + 6 1 AUXR &= 0xFE; // 1ѡʱ1Ϊʷ + 7 1 TMOD &= 0x0F; // öʱģʽ + 8 1 TL1 = 0xCC; // öʱʼֵ + 9 1 TH1 = 0xFF; // öʱʼֵ + 10 1 ET1 = 0; // ֹʱж + 11 1 TR1 = 1; // ʱ1ʼʱ + 12 1 ES = 1; // ʹܴ1ж + 13 1 EA = 1; + 14 1 } + 15 + 16 extern char putchar(char ch) { + 17 1 SBUF = ch; // chдSBUF + 18 1 while (TI == 0); // ȴ + 19 1 TI = 0; // ɱ־ + 20 1 return ch; + 21 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 35 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Ultrasonic.lst b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..d5e7972 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/Ultrasonic.lst @@ -0,0 +1,82 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 05/16/2024 09:11:54 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; // 38 + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 CH = CL = 0; // PCAĴֵ + 36 1 CCON = 0; // ʼPCAƼĴ/PCAʱֹͣ/CF/ + 37 1 + 38 1 EA = 0; // رж + 39 1 Ut_Wave_Init(); // ͳź + 40 1 EA = 1; // ж + 41 1 CR = 1; // PCAʼ + 42 1 while (Rx && !CF) // TF1 + 43 1 ; // ȴ + 44 1 CR = 0; // PCAֹͣ + 45 1 if (CF == 0) + 46 1 { + 47 2 time = CH << 8 | CL; // λΪ + 48 2 // L=V*T/2 + 49 2 return (time * 0.017); // صĵλcm + 50 2 } + 51 1 else + 52 1 { + 53 2 CF = 0; + 54 2 return 0; + C51 COMPILER V9.59.0.0 ULTRASONIC 05/16/2024 09:11:54 PAGE 2 + + 55 2 } + 56 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 93 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/iic.lst b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/iic.lst new file mode 100644 index 0000000..7562301 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/iic.lst @@ -0,0 +1,225 @@ +C51 COMPILER V9.59.0.0 IIC 05/16/2024 09:11:54 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. + 4 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运 + -速度和试题 + 5 中对单片机时钟频率的要求,进行代码调试和修改。 + 6 */ + 7 #include "iic.h" + 8 + 9 #include "intrins.h" + 10 #define DELAY_TIME 5 + 11 sbit scl = P2 ^ 0; + 12 sbit sda = P2 ^ 1; + 13 // + 14 static void I2C_Delay(unsigned char n) { + 15 1 do { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) { + 36 1 sda = 1; + 37 1 scl = 1; + 38 1 I2C_Delay(DELAY_TIME); + 39 1 sda = 0; + 40 1 I2C_Delay(DELAY_TIME); + 41 1 scl = 0; + 42 1 } + 43 + 44 // + 45 void I2CStop(void) { + 46 1 sda = 0; + 47 1 scl = 1; + 48 1 I2C_Delay(DELAY_TIME); + 49 1 sda = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 } + 52 + 53 // + C51 COMPILER V9.59.0.0 IIC 05/16/2024 09:11:54 PAGE 2 + + 54 void I2CSendByte(unsigned char byt) { + 55 1 unsigned char i; + 56 1 + 57 1 for (i = 0; i < 8; i++) { + 58 2 scl = 0; + 59 2 I2C_Delay(DELAY_TIME); + 60 2 if (byt & 0x80) { + 61 3 sda = 1; + 62 3 } else { + 63 3 sda = 0; + 64 3 } + 65 2 I2C_Delay(DELAY_TIME); + 66 2 scl = 1; + 67 2 byt <<= 1; + 68 2 I2C_Delay(DELAY_TIME); + 69 2 } + 70 1 + 71 1 scl = 0; + 72 1 } + 73 + 74 // + 75 unsigned char I2CReceiveByte(void) { + 76 1 unsigned char da; + 77 1 unsigned char i; + 78 1 for (i = 0; i < 8; i++) { + 79 2 scl = 1; + 80 2 I2C_Delay(DELAY_TIME); + 81 2 da <<= 1; + 82 2 if (sda) da |= 0x01; + 83 2 scl = 0; + 84 2 I2C_Delay(DELAY_TIME); + 85 2 } + 86 1 return da; + 87 1 } + 88 + 89 // + 90 unsigned char I2CWaitAck(void) { + 91 1 unsigned char ackbit; + 92 1 + 93 1 scl = 1; + 94 1 I2C_Delay(DELAY_TIME); + 95 1 ackbit = sda; + 96 1 scl = 0; + 97 1 I2C_Delay(DELAY_TIME); + 98 1 + 99 1 return ackbit; + 100 1 } + 101 + 102 // + 103 void I2CSendAck(unsigned char ackbit) { + 104 1 scl = 0; + 105 1 sda = ackbit; + 106 1 I2C_Delay(DELAY_TIME); + 107 1 scl = 1; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 scl = 0; + 110 1 sda = 1; + 111 1 I2C_Delay(DELAY_TIME); + 112 1 } + 113 + 114 unsigned char Ad_Read(unsigned char addr) { + 115 1 unsigned char temp; + C51 COMPILER V9.59.0.0 IIC 05/16/2024 09:11:54 PAGE 3 + + 116 1 // 选择芯片为PCF + 117 1 I2CStart(); + 118 1 I2CSendByte(0x90); + 119 1 I2CWaitAck(); + 120 1 I2CSendByte(addr); + 121 1 I2CWaitAck(); + 122 1 I2CStart(); + 123 1 I2CSendByte(0x91); + 124 1 I2CWaitAck(); + 125 1 temp = I2CReceiveByte(); + 126 1 I2CSendAck(1); + 127 1 I2CStop(); + 128 1 return temp; + 129 1 } + 130 // 写入的值是数字值0-255,而不是模拟值 + 131 void Da_Write(unsigned char dat) { + 132 1 // 选择芯片为PCF + 133 1 I2CStart(); + 134 1 I2CSendByte(0x90); + 135 1 I2CWaitAck(); + 136 1 + 137 1 I2CSendByte(0x41); + 138 1 I2CWaitAck(); + 139 1 I2CSendByte(dat); + 140 1 I2CWaitAck(); + 141 1 I2CStop(); + 142 1 } + 143 + 144 /// @brief EEPROM 写函数 + 145 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 146 /// @param addr 8的倍数 + 147 /// @param num 写入的数组大小 + 148 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, + 149 unsigned char num) { + 150 1 // 选择芯片为EEPROM,模式为写 + 151 1 I2CStart(); + 152 1 I2CSendByte(0xA0); + 153 1 I2CWaitAck(); + 154 1 + 155 1 I2CSendByte(addr); // 写入的数据的地址 + 156 1 I2CWaitAck(); + 157 1 while (num--) { + 158 2 I2CSendByte(*EEPROM_String++); + 159 2 I2CWaitAck(); + 160 2 I2C_Delay(200); + 161 2 } + 162 1 I2C_Delay(255); + 163 1 I2C_Delay(255); + 164 1 I2C_Delay(255); + 165 1 I2C_Delay(255); + 166 1 I2CStop(); + 167 1 } + 168 /// @brief EEPROM 读函数 + 169 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 170 /// @param addr 8的倍数 + 171 /// @param num 读取的数组大小 + 172 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, + 173 unsigned char num) { + 174 1 // 选择芯片为EEPROM,模式为写 + 175 1 I2CStart(); + 176 1 I2CSendByte(0xA0); + 177 1 I2CWaitAck(); + C51 COMPILER V9.59.0.0 IIC 05/16/2024 09:11:54 PAGE 4 + + 178 1 + 179 1 I2CSendByte(addr); + 180 1 I2CWaitAck(); + 181 1 + 182 1 // 选择芯片为EEPROM,模式为读 + 183 1 I2CStart(); + 184 1 I2CSendByte(0xA1); + 185 1 I2CWaitAck(); + 186 1 while (num--) { + 187 2 *EEPROM_String++ = I2CReceiveByte(); + 188 2 if (num) + 189 2 I2CSendAck(0); + 190 2 else + 191 2 I2CSendAck(1); // 停止读取 + 192 2 } + 193 1 I2CStop(); + 194 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 398 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/main.lst b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/main.lst new file mode 100644 index 0000000..60d7ea4 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/main.lst @@ -0,0 +1,369 @@ +C51 COMPILER V9.59.0.0 MAIN 05/16/2024 09:11:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 + 3 /* LEDʾ */ + 4 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 5 + 6 /* ʾ */ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ڷ */ + 12 uchar Uart_Buf[6]; // ڽյ + 13 uchar Uart_Rx_Index; // ڽյݵָ + 14 + 15 /* ʱ䷽ */ + 16 uint time_all_1s; + 17 uint long_press_1s_12; // 1sļʱ + 18 uint long_press_1s_13; // 1sļʱ + 19 uchar Sys_Tick; // ઼ʱʱ + 20 /* */ + 21 uchar Seg_show_mode; // 0 1 + 22 uchar Data_show_mode; // 0 ¶ 1 2 + 23 uchar Para_show_mode; // 0 ¶ 1 + 24 uchar Out_mode; // 0 1 ֹͣ + 25 /* */ + 26 uint T_value_100x; // ¶ȵ100 + 27 uchar Dis_value; // + 28 uint Change_times; // + 29 uchar Para_T = 30; // ¶Ȳ + 30 uchar Para_Dis = 35; // + 31 uchar Para_T_temp; + 32 uchar Para_Dis_temp; + 33 /* ж*/ + 34 bit press_12; // 12 + 35 bit press_13; // 13 + 36 bit Uart_flag; // ǷյϢ + 37 bit out_range; // Ƿ񳬳Χ + 38 bit hot_T; // Ƿ¶ȹ + 39 /* ݴ */ + 40 void Data_Proc() { + 41 1 if (time_all_1s % 100 == 0) { + 42 2 // ȡ + 43 2 Dis_value = Ut_Wave_Data(); + 44 2 out_range = Dis_value > Para_Dis; + 45 2 } + 46 1 if (time_all_1s % 500 == 0) { + 47 2 // ¶ȶȡ + 48 2 T_value_100x = rd_temperature() * 100; + 49 2 hot_T = (T_value_100x > Para_T * 100); + 50 2 } + 51 1 } + 52 /* ̴ */ + 53 void Key_Proc() { + 54 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + C51 COMPILER V9.59.0.0 MAIN 05/16/2024 09:11:53 PAGE 2 + + 55 1 if (time_all_1s % 10) return; + 56 1 Key_Val = Key_Read(); + 57 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 58 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 59 1 Key_Old = Key_Val; + 60 1 + 61 1 if (Key_Down == 12) { + 62 2 press_12 = 1; // 12 + 63 2 } + 64 1 // ʱ + 65 1 if (long_press_1s_12 >= 1000) { + 66 2 press_12 = 0; + 67 2 // ִг1sIJ + 68 2 Change_times = 0; + 69 2 } + 70 1 // ̧12ʱûе1s + 71 1 if (Key_Up == 12 && press_12) { + 72 2 press_12 = 0; // ɿ12 + 73 2 // ʱδɿ̰ + 74 2 switch (Seg_show_mode) { + 75 3 case 0: + 76 3 /* */ + 77 3 Data_show_mode = (++Data_show_mode) % 3; + 78 3 break; + 79 3 + 80 3 case 1: + 81 3 /* */ + 82 3 Para_show_mode = (++Para_show_mode) % 2; + 83 3 break; + 84 3 } + 85 2 } + 86 1 if (Key_Down == 13) { + 87 2 press_13 = 1; // 13 + 88 2 } + 89 1 // ʱ + 90 1 if (long_press_1s_13 >= 1000) { + 91 2 press_13 = 0; + 92 2 // ִг + 93 2 Out_mode = (++Out_mode) % 2; + 94 2 } + 95 1 // ̧13ʱûе1s + 96 1 if (Key_Up == 13 & press_13) { + 97 2 press_13 = 0; // ɿ13 + 98 2 // ʱδɿ̰ + 99 2 Seg_show_mode = (++Seg_show_mode) % 2; + 100 2 Data_show_mode = 0; + 101 2 Para_show_mode = 0; + 102 2 if (Seg_show_mode == 1) { + 103 3 // ҳ + 104 3 Para_Dis_temp = Para_Dis; + 105 3 Para_T_temp = Para_T; + 106 3 } else { + 107 3 // ˳ҳ + 108 3 if (Para_Dis_temp != Para_Dis || Para_T_temp != Para_T) { + 109 4 Change_times = (Change_times == 65535) ? 65535 : Change_times + 1; + 110 4 EEPROM_Write(&Change_times, 0, 2); +*** WARNING C182 IN LINE 110 OF main.c: pointer to different objects + 111 4 } + 112 3 Para_Dis = Para_Dis_temp; + 113 3 Para_T = Para_T_temp; + 114 3 } + 115 2 } + C51 COMPILER V9.59.0.0 MAIN 05/16/2024 09:11:53 PAGE 3 + + 116 1 switch (Para_show_mode) { + 117 2 case 0: + 118 2 /* ¶ */ + 119 2 if (Key_Down == 16) Para_T = (Para_T == 0) ? 99 : Para_T - 2; + 120 2 if (Key_Down == 17) Para_T = (Para_T == 99) ? 0 : Para_T + 2; + 121 2 break; + 122 2 + 123 2 case 1: + 124 2 /* */ + 125 2 if (Key_Down == 16) Para_Dis = (Para_Dis == 0) ? 99 : Para_Dis - 5; + 126 2 if (Key_Down == 17) Para_Dis = (Para_Dis == 99) ? 0 : Para_Dis + 5; + 127 2 break; + 128 2 } + 129 1 } + 130 /* ܴ */ + 131 void Seg_Proc() { + 132 1 if (time_all_1s % 20) return; + 133 1 switch (Seg_show_mode) { + 134 2 case 0: + 135 2 /* */ + 136 2 switch (Data_show_mode) { + 137 3 case 0: + 138 3 /* ¶ */ + 139 3 Seg_Point[5] = 1; + 140 3 Seg_Buf[0] = 11; // C + 141 3 Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = 10; + 142 3 Seg_Buf[4] = T_value_100x / 1000 % 10; + 143 3 Seg_Buf[5] = T_value_100x / 100 % 10; + 144 3 Seg_Buf[6] = T_value_100x / 10 % 10; + 145 3 Seg_Buf[7] = T_value_100x % 10; + 146 3 break; + 147 3 + 148 3 case 1: + 149 3 /* */ + 150 3 Seg_Point[5] = 0; + 151 3 Seg_Buf[0] = 12; // L + 152 3 Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + 153 3 Seg_Buf[6] = Dis_value / 10 % 10; + 154 3 Seg_Buf[7] = Dis_value % 10; + 155 3 break; + 156 3 + 157 3 case 2: + 158 3 /* */ + 159 3 Seg_Point[5] = 0; + 160 3 Seg_Buf[0] = 13; // n + 161 3 Seg_Buf[1] = Seg_Buf[2] = 10; + 162 3 Seg_Buf[3] = + 163 3 (Change_times / 10000 % 10 == 0) ? 10 : Change_times / 10000 % 10; + 164 3 Seg_Buf[4] = (Seg_Buf[3] == 10 && (Change_times / 1000 % 10 == 0)) + 165 3 ? 10 + 166 3 : Change_times / 1000 % 10; + 167 3 Seg_Buf[5] = (Seg_Buf[4] == 10 && (Change_times / 100 % 10 == 0)) + 168 3 ? 10 + 169 3 : Change_times / 100 % 10; + 170 3 Seg_Buf[6] = (Seg_Buf[5] == 10 && (Change_times / 10 % 10 == 0)) + 171 3 ? 10 + 172 3 : Change_times / 10 % 10; + 173 3 Seg_Buf[7] = Change_times % 10; + 174 3 break; + 175 3 } + 176 2 break; + 177 2 + C51 COMPILER V9.59.0.0 MAIN 05/16/2024 09:11:53 PAGE 4 + + 178 2 case 1: + 179 2 /* */ + 180 2 Seg_Point[5] = 0; + 181 2 Seg_Buf[0] = 14; // P + 182 2 Seg_Buf[1] = Seg_Buf[2] = 10; + 183 2 Seg_Buf[3] = Para_show_mode + 1; + 184 2 Seg_Buf[4] = Seg_Buf[5] = 10; + 185 2 switch (Para_show_mode) { + 186 3 case 0: + 187 3 /* ¶ */ + 188 3 Seg_Buf[6] = Para_T_temp / 10 % 10; + 189 3 Seg_Buf[7] = Para_T_temp % 10; + 190 3 break; + 191 3 + 192 3 case 1: + 193 3 /* */ + 194 3 Seg_Buf[6] = Para_Dis_temp / 10 % 10; + 195 3 Seg_Buf[7] = Para_Dis_temp % 10; + 196 3 break; + 197 3 } + 198 2 break; + 199 2 } + 200 1 } + 201 + 202 /* LED */ + 203 void Led_Proc() { + 204 1 switch (Out_mode) { + 205 2 case 0: + 206 2 /* */ + 207 2 if (out_range) + 208 2 Da_Write(4 * 51); // Χ4V + 209 2 else + 210 2 Da_Write(2 * 51); // ûΧ2V + 211 2 break; + 212 2 + 213 2 case 1: + 214 2 /* ֹͣ */ + 215 2 Da_Write(0.4 * 51); // ֹͣ״̬0.4V + 216 2 break; + 217 2 } + 218 1 ucLed[0] = hot_T; + 219 1 ucLed[1] = !out_range; + 220 1 ucLed[2] = !Out_mode; + 221 1 } + 222 + 223 /* ڴ */ + 224 void Uart_Proc() { + 225 1 if (Uart_Rx_Index == 0) return; + 226 1 // 10msûյ + 227 1 if (Sys_Tick >= 10) { + 228 2 Sys_Tick = Uart_flag = 0; + 229 2 if (Uart_Buf[0] == 'S' && Uart_Buf[1] == 'T') { + 230 3 printf("$%bu,%5.2f\r\n", Dis_value, (float)T_value_100x / 100.0); + 231 3 } else if (Uart_Buf[0] == 'P' && Uart_Buf[1] == 'A' && Uart_Buf[2] == 'R' && + 232 2 Uart_Buf[3] == 'A') { + 233 3 printf("#%bu,%bu\r\n", Para_Dis, Para_T); + 234 3 } else { + 235 3 printf("ERROR\r\n"); + 236 3 } + 237 2 memset(Uart_Buf, 0, Uart_Rx_Index); + 238 2 Uart_Rx_Index = 0; + 239 2 } + C51 COMPILER V9.59.0.0 MAIN 05/16/2024 09:11:53 PAGE 5 + + 240 1 } + 241 + 242 /* ʱ0жϳʼ */ + 243 void Timer0_Init(void) // 1@12.000MHz + 244 { + 245 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 246 1 TMOD &= 0xF0; // öʱģʽ + 247 1 TL0 = 0x18; // öʱʼֵ + 248 1 TH0 = 0xFC; // öʱʼֵ + 249 1 TF0 = 0; // TF0־ + 250 1 TR0 = 1; // ʱ0ʼʱ + 251 1 ET0 = 1; + 252 1 EA = 1; + 253 1 } + 254 + 255 /* ʱ0жϺ */ + 256 void Timer0_ISR(void) interrupt 1 { + 257 1 uchar i; + 258 1 if (++time_all_1s == 1000) time_all_1s = 0; + 259 1 // ʱ + 260 1 if (press_12) { + 261 2 if (++long_press_1s_12 >= 1000) { + 262 3 long_press_1s_12 = 1001; + 263 3 } + 264 2 } else { + 265 2 long_press_1s_12 = 0; + 266 2 } + 267 1 if (press_13) { + 268 2 if (++long_press_1s_13 >= 1000) { + 269 3 long_press_1s_13 = 1001; + 270 3 } + 271 2 } else { + 272 2 long_press_1s_13 = 0; + 273 2 } + 274 1 + 275 1 // લ + 276 1 if (Uart_flag) Sys_Tick++; + 277 1 Seg_Pos = (++Seg_Pos) % 8; + 278 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 279 1 for (i = 0; i < 8; i++) Led_Disp(i, ucLed[i]); + 280 1 } + 281 + 282 /* жϷ */ + 283 void Uart_ISR(void) interrupt 4 { + 284 1 if (RI == 1) // ڽյ + 285 1 { + 286 2 Uart_flag = 1; + 287 2 Sys_Tick = 0; // ܼʱ + 288 2 Uart_Buf[Uart_Rx_Index] = SBUF; + 289 2 Uart_Rx_Index++; + 290 2 RI = 0; + 291 2 } + 292 1 if (Uart_Rx_Index > 6) Uart_Rx_Index = 0; + 293 1 } + 294 void Delay750ms(void) //@12.000MHz + 295 { + 296 1 unsigned char data i, j, k; + 297 1 + 298 1 _nop_(); + 299 1 _nop_(); + 300 1 i = 35; + 301 1 j = 51; + C51 COMPILER V9.59.0.0 MAIN 05/16/2024 09:11:53 PAGE 6 + + 302 1 k = 182; + 303 1 do { + 304 2 do { + 305 3 while (--k); + 306 3 } while (--j); + 307 2 } while (--i); + 308 1 } + 309 uchar passwd = 155; + 310 uchar input_passwd; + 311 void main() { + 312 1 System_Init(); + 313 1 Timer0_Init(); + 314 1 Uart1_Init(); + 315 1 rd_temperature(); + 316 1 Delay750ms(); + 317 1 EEPROM_Read(&input_passwd, 8, 1); // òдĵطУ + 318 1 if (input_passwd != passwd) // Уʧܣ֮ǰδд1/256ʳ + 319 1 { + 320 2 EEPROM_Write(&passwd, 8, 1); + 321 2 } else // УͨȡҪ + 322 1 { + 323 2 EEPROM_Read(&Change_times, 0, 2); +*** WARNING C182 IN LINE 323 OF main.c: pointer to different objects + 324 2 } + 325 1 T_value_100x = rd_temperature() * 100; + 326 1 while (1) { + 327 2 Data_Proc(); + 328 2 Key_Proc(); + 329 2 Seg_Proc(); + 330 2 Uart_Proc(); + 331 2 Led_Proc(); + 332 2 } + 333 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 1486 ---- + CONSTANT SIZE = 32 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 58 1 + IDATA SIZE = ---- ---- + BIT SIZE = 5 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/onewire.lst b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/onewire.lst new file mode 100644 index 0000000..b6eb203 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/onewire.lst @@ -0,0 +1,125 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 05/16/2024 09:11:54 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit DQ = P1 ^ 4; // 单总线数据口 + 10 void Delay4us(void) //@12.000MHz + 11 { + 12 1 unsigned char data i; + 13 1 + 14 1 _nop_(); + 15 1 _nop_(); + 16 1 i = 9; + 17 1 while (--i) + 18 1 ; + 19 1 } + 20 + 21 // + 22 void Delay_OneWire(unsigned int t) + 23 { + 24 1 unsigned char i; + 25 1 while (t--) + 26 1 { + 27 2 for (i = 0; i < 12; i++) + 28 2 ; + 29 2 } + 30 1 } + 31 + 32 // + 33 void Write_DS18B20(unsigned char dat) + 34 { + 35 1 unsigned char i; + 36 1 for (i = 0; i < 8; i++) + 37 1 { + 38 2 DQ = 0; + 39 2 DQ = dat & 0x01; + 40 2 Delay_OneWire(5); + 41 2 DQ = 1; + 42 2 dat >>= 1; + 43 2 } + 44 1 Delay_OneWire(5); + 45 1 } + 46 + 47 // + 48 unsigned char Read_DS18B20(void) + 49 { + 50 1 unsigned char i; + 51 1 unsigned char dat; + 52 1 + 53 1 for (i = 0; i < 8; i++) + C51 COMPILER V9.59.0.0 ONEWIRE 05/16/2024 09:11:54 PAGE 2 + + 54 1 { + 55 2 DQ = 0; + 56 2 dat >>= 1; + 57 2 DQ = 1; + 58 2 Delay4us(); + 59 2 if (DQ) + 60 2 { + 61 3 dat |= 0x80; + 62 3 } + 63 2 Delay_OneWire(5); + 64 2 } + 65 1 return dat; + 66 1 } + 67 + 68 // + 69 bit init_ds18b20(void) + 70 { + 71 1 bit initflag = 0; + 72 1 + 73 1 DQ = 1; + 74 1 Delay_OneWire(12); + 75 1 DQ = 0; + 76 1 Delay_OneWire(80); + 77 1 DQ = 1; + 78 1 Delay_OneWire(10); + 79 1 initflag = DQ; + 80 1 Delay_OneWire(5); + 81 1 + 82 1 return initflag; + 83 1 } + 84 + 85 float rd_temperature() + 86 { + 87 1 unsigned char low, high; + 88 1 init_ds18b20(); + 89 1 Write_DS18B20(0xcc); // 跳过ROM + 90 1 Write_DS18B20(0x44); // 启动温度转换 + 91 1 Delay_OneWire(200); // 等待温度转换 + 92 1 init_ds18b20(); + 93 1 Write_DS18B20(0xcc); // 跳过ROM + 94 1 Write_DS18B20(0xbe); // 读取温度值 + 95 1 low = Read_DS18B20(); + 96 1 high = Read_DS18B20(); + 97 1 return (float)(high << 8 | low) * 0.0625; + 98 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 212 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/zuolan.m51 b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/zuolan.m51 new file mode 100644 index 0000000..c880776 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Listings/zuolan.m51 @@ -0,0 +1,1448 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\Uart.obj, .\Objects\iic.obj, .\Objects\onewire.obj, .\Objects\Ultrasonic.obj TO .\Objects\zuolan PRINT +>> (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\Uart.obj (UART) + .\Objects\iic.obj (IIC) + .\Objects\onewire.obj (ONEWIRE) + .\Objects\Ultrasonic.obj (ULTRASONIC) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (PRINTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPROUND) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPCONVERT) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FTNPWR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?SLCMP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?PLDIIDATA) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CCASE) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0008H UNIT ?DT?LED + 0010H 0010H *** GAP *** + BIT 0020H.0 0001H.1 UNIT _BIT_GROUP_ + BIT 0021H.1 0000H.5 UNIT ?BI?MAIN + BIT 0021H.6 0000H.1 UNIT ?BI?BEEP?LED + BIT 0021H.7 0000H.1 UNIT ?BI?RELAY?LED + BIT 0022H.0 0000H.1 UNIT ?BI?MOTOR?LED + 0022H.1 0000H.7 *** GAP *** + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 2 + + + DATA 0023H 003AH UNIT ?DT?MAIN + DATA 005DH 001DH UNIT _DATA_GROUP_ + IDATA 007AH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0008H UNIT ?PR?_PUTCHAR?UART + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0023H 0003H ABSOLUTE + CODE 0026H 0632H UNIT ?C?LIB_CODE + CODE 0658H 046FH UNIT ?PR?PRINTF?PRINTF + CODE 0AC7H 01C7H UNIT ?PR?SEG_PROC?MAIN + CODE 0C8EH 016CH UNIT ?PR?KEY_PROC?MAIN + CODE 0DFAH 00CFH UNIT ?PR?TIMER0_ISR?MAIN + CODE 0EC9H 008CH UNIT ?C_C51STARTUP + CODE 0F55H 0081H UNIT ?PR?UART_PROC?MAIN + CODE 0FD6H 007AH UNIT ?PR?KEY_READ?KEY + CODE 1050H 0064H UNIT ?PR?MAIN?MAIN + CODE 10B4H 005CH UNIT ?PR?DATA_PROC?MAIN + CODE 1110H 0046H UNIT ?PR?_EEPROM_WRITE?IIC + CODE 1156H 0042H UNIT ?PR?_EEPROM_READ?IIC + CODE 1198H 0040H UNIT ?C_INITSEG + CODE 11D8H 003CH UNIT ?PR?_SEG_DISP?SEG + CODE 1214H 003CH UNIT ?PR?UT_WAVE_DATA?ULTRASONIC + CODE 1250H 003BH UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 128BH 003AH UNIT ?PR?_LED_DISP?LED + CODE 12C5H 0036H UNIT ?PR?LED_PROC?MAIN + CODE 12FBH 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 1330H 0031H UNIT ?PR?UART_ISR?MAIN + CODE 1361H 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 1388H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 13AFH 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 13D5H 0026H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 13FBH 0025H UNIT ?PR?_AD_READ?IIC + CODE 1420H 0024H UNIT ?PR?I2CWAITACK?IIC + CODE 1444H 0023H UNIT ?PR?BEEP?LED + CODE 1467H 0023H UNIT ?PR?RELAY?LED + CODE 148AH 0023H UNIT ?PR?MOTOR?LED + CODE 14ADH 0020H UNIT ?CO?MAIN + CODE 14CDH 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 14EBH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 1508H 001BH UNIT ?PR?UART1_INIT?UART + CODE 1523H 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 153DH 001AH UNIT ?PR?UT_WAVE_INIT?ULTRASONIC + CODE 1557H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 156FH 0015H UNIT ?PR?_DA_WRITE?IIC + CODE 1584H 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 1593H 000FH UNIT ?CO?SEG + CODE 15A2H 000FH UNIT ?PR?I2CSTART?IIC + CODE 15B1H 000CH UNIT ?PR?I2CSTOP?IIC + CODE 15BDH 0007H UNIT ?PR?DELAY4US?ONEWIRE + CODE 15C4H 0007H UNIT ?PR?DELAY12US?ULTRASONIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 3 + + + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +----------------------------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- 005DH 0001H + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +?PR?_SEG_DISP?SEG ----- ----- ----- ----- + +--> ?CO?SEG + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?UART1_INIT?UART + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?_EEPROM_READ?IIC + +--> ?PR?_EEPROM_WRITE?IIC + +--> ?PR?DATA_PROC?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?UART_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.0 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?DELAY4US?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_EEPROM_READ?IIC ----- ----- 005EH 0005H + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CWAITACK?IIC ----- ----- ----- ----- + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 4 + + + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTART?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDACK?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_EEPROM_WRITE?IIC ----- ----- 005EH 0005H + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?DATA_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?UT_WAVE_DATA?ULTRASONIC + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +?PR?UT_WAVE_DATA?ULTRASONIC ----- ----- ----- ----- + +--> ?PR?UT_WAVE_INIT?ULTRASONIC + +?PR?UT_WAVE_INIT?ULTRASONIC ----- ----- ----- ----- + +--> ?PR?DELAY12US?ULTRASONIC + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +--> ?PR?_EEPROM_WRITE?IIC + +?PR?UART_PROC?MAIN ----- ----- ----- ----- + +--> ?CO?MAIN + +--> ?PR?PRINTF?PRINTF + +?PR?PRINTF?PRINTF 0020H.0 0001H.1 005EH 001CH + +--> ?PR?_PUTCHAR?UART + +?PR?LED_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_DA_WRITE?IIC + +?PR?_DA_WRITE?IIC ----- ----- ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?I2CSTOP?IIC + + + + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 5 + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (MAIN) + + VALUE TYPE NAME + ---------------------------------- + + ------- MODULE MAIN + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + B:0021H.1 PUBLIC hot_T + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0DFAH PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + B:00A8H.7 PUBLIC EA + D:00F8H PUBLIC P7 + D:0027H PUBLIC Para_Dis + D:0028H PUBLIC long_press_1s_12 + C:12C5H PUBLIC Led_Proc + D:002AH PUBLIC long_press_1s_13 + D:002CH PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:0F55H PUBLIC Uart_Proc + D:0034H PUBLIC passwd + C:0AC7H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + B:0021H.2 PUBLIC Uart_flag + B:0098H.0 PUBLIC RI + D:0035H PUBLIC Uart_Buf + D:003BH PUBLIC Seg_Buf + C:0C8EH PUBLIC Key_Proc + D:0043H PUBLIC Para_Dis_temp + D:0044H PUBLIC Dis_value + D:00D8H PUBLIC CCON + D:0045H PUBLIC Uart_Rx_Index + C:1050H PUBLIC main + D:0046H PUBLIC Data_show_mode + D:0047H PUBLIC input_passwd + C:000EH PUBLIC Timer0_Init + D:0048H PUBLIC Sys_Tick + D:0099H PUBLIC SBUF + D:0049H PUBLIC Para_show_mode + D:004AH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:004BH PUBLIC Para_T + D:004CH PUBLIC T_value_100x + D:004EH PUBLIC Out_mode + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0021H.3 PUBLIC out_range + B:0088H.5 PUBLIC TF0 + D:004FH PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 6 + + + D:0050H PUBLIC Change_times + D:008AH PUBLIC TL0 + D:0052H PUBLIC time_all_1s + D:0054H PUBLIC Para_T_temp + B:0088H.4 PUBLIC TR0 + C:1330H PUBLIC Uart_ISR + D:0055H PUBLIC ucLed + C:1584H PUBLIC Delay750ms + C:10B4H PUBLIC Data_Proc + B:0021H.4 PUBLIC press_12 + B:0021H.5 PUBLIC press_13 + D:00D0H PUBLIC PSW + ------- PROC DATA_PROC + C:10B4H LINE# 40 + C:10B4H LINE# 41 + C:10C3H LINE# 43 + C:10C8H LINE# 44 + C:10D5H LINE# 45 + C:10D5H LINE# 46 + C:10E4H LINE# 48 + C:10F8H LINE# 49 + C:110FH LINE# 50 + C:110FH LINE# 51 + ------- ENDPROC DATA_PROC + ------- PROC KEY_PROC + ------- DO + D:0023H SYMBOL Key_Val + D:0024H SYMBOL Key_Down + D:0025H SYMBOL Key_Up + D:0026H SYMBOL Key_Old + ------- ENDDO + C:0C8EH LINE# 53 + C:0C8EH LINE# 55 + C:0CA0H LINE# 56 + C:0CA5H LINE# 57 + C:0CAEH LINE# 58 + C:0CB4H LINE# 59 + C:0CB7H LINE# 61 + C:0CC0H LINE# 62 + C:0CC2H LINE# 63 + C:0CC2H LINE# 65 + C:0CCDH LINE# 66 + C:0CCFH LINE# 68 + C:0CD4H LINE# 69 + C:0CD4H LINE# 71 + C:0CE0H LINE# 72 + C:0CE2H LINE# 74 + C:0CEAH LINE# 75 + C:0CEAH LINE# 77 + C:0CF5H LINE# 78 + C:0CF7H LINE# 80 + C:0CF7H LINE# 82 + C:0CFFH LINE# 83 + C:0CFFH LINE# 84 + C:0CFFH LINE# 85 + C:0CFFH LINE# 86 + C:0D05H LINE# 87 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 7 + + + C:0D07H LINE# 88 + C:0D07H LINE# 90 + C:0D12H LINE# 91 + C:0D14H LINE# 93 + C:0D1CH LINE# 94 + C:0D1CH LINE# 96 + C:0D2FH LINE# 97 + C:0D31H LINE# 99 + C:0D39H LINE# 100 + C:0D3CH LINE# 101 + C:0D3EH LINE# 102 + C:0D44H LINE# 104 + C:0D47H LINE# 105 + C:0D4AH LINE# 106 + C:0D4CH LINE# 108 + C:0D57H LINE# 109 + C:0D80H LINE# 110 + C:0D8EH LINE# 111 + C:0D8EH LINE# 112 + C:0D91H LINE# 113 + C:0D94H LINE# 114 + C:0D94H LINE# 115 + C:0D94H LINE# 116 + C:0D9CH LINE# 117 + C:0D9CH LINE# 119 + C:0DB4H LINE# 120 + C:0DCAH LINE# 121 + C:0DCBH LINE# 123 + C:0DCBH LINE# 125 + C:0DE3H LINE# 126 + C:0DF9H LINE# 127 + C:0DF9H LINE# 128 + C:0DF9H LINE# 129 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:0AC7H LINE# 131 + C:0AC7H LINE# 132 + C:0AD9H LINE# 133 + C:0AE7H LINE# 134 + C:0AE7H LINE# 136 + C:0AF9H LINE# 137 + C:0AF9H LINE# 139 + C:0AFCH LINE# 140 + C:0AFFH LINE# 141 + C:0B08H LINE# 142 + C:0B1CH LINE# 143 + C:0B30H LINE# 144 + C:0B44H LINE# 145 + C:0B48H LINE# 146 + C:0B4BH LINE# 148 + C:0B4BH LINE# 150 + C:0B4EH LINE# 151 + C:0B51H LINE# 152 + C:0B60H LINE# 153 + C:0B6DH LINE# 154 + C:0B6FH LINE# 155 + C:0B72H LINE# 157 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 8 + + + C:0B72H LINE# 159 + C:0B75H LINE# 160 + C:0B78H LINE# 161 + C:0B7EH LINE# 162 + C:0B9CH LINE# 164 + C:0BD1H LINE# 167 + C:0C05H LINE# 170 + C:0C39H LINE# 173 + C:0C46H LINE# 174 + C:0C47H LINE# 175 + C:0C47H LINE# 176 + C:0C47H LINE# 178 + C:0C47H LINE# 180 + C:0C4AH LINE# 181 + C:0C4DH LINE# 182 + C:0C53H LINE# 183 + C:0C58H LINE# 184 + C:0C5EH LINE# 185 + C:0C66H LINE# 186 + C:0C66H LINE# 188 + C:0C73H LINE# 189 + C:0C75H LINE# 190 + C:0C77H LINE# 192 + C:0C77H LINE# 194 + C:0C84H LINE# 195 + C:0C8DH LINE# 196 + C:0C8DH LINE# 197 + C:0C8DH LINE# 198 + C:0C8DH LINE# 199 + C:0C8DH LINE# 200 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:12C5H LINE# 203 + C:12C5H LINE# 204 + C:12CDH LINE# 205 + C:12CDH LINE# 207 + C:12D0H LINE# 208 + C:12D4H LINE# 210 + C:12D6H LINE# 211 + C:12D8H LINE# 213 + C:12D8H LINE# 215 + C:12DDH LINE# 216 + C:12DDH LINE# 217 + C:12DDH LINE# 218 + C:12E3H LINE# 219 + C:12EEH LINE# 220 + C:12FAH LINE# 221 + ------- ENDPROC LED_PROC + ------- PROC UART_PROC + C:0F55H LINE# 224 + C:0F55H LINE# 225 + C:0F59H LINE# 227 + C:0F64H LINE# 228 + C:0F69H LINE# 229 + C:0F73H LINE# 230 + C:0F96H LINE# 231 + C:0FACH LINE# 232 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 9 + + + C:0FACH LINE# 233 + C:0FB8H LINE# 234 + C:0FBAH LINE# 235 + C:0FC3H LINE# 236 + C:0FC3H LINE# 237 + C:0FD2H LINE# 238 + C:0FD5H LINE# 239 + C:0FD5H LINE# 240 + ------- ENDPROC UART_PROC + ------- PROC TIMER0_INIT + C:000EH LINE# 243 + C:000EH LINE# 244 + C:000EH LINE# 245 + C:0011H LINE# 246 + C:0014H LINE# 247 + C:0017H LINE# 248 + C:001AH LINE# 249 + C:001CH LINE# 250 + C:001EH LINE# 251 + C:0020H LINE# 252 + C:0022H LINE# 253 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + ------- DO + D:005DH SYMBOL i + ------- ENDDO + C:0DFAH LINE# 256 + C:0E17H LINE# 258 + C:0E2EH LINE# 260 + C:0E31H LINE# 261 + C:0E42H LINE# 262 + C:0E48H LINE# 263 + C:0E48H LINE# 264 + C:0E4AH LINE# 265 + C:0E50H LINE# 266 + C:0E50H LINE# 267 + C:0E53H LINE# 268 + C:0E64H LINE# 269 + C:0E6AH LINE# 270 + C:0E6AH LINE# 271 + C:0E6CH LINE# 272 + C:0E72H LINE# 273 + C:0E72H LINE# 276 + C:0E77H LINE# 277 + C:0E7FH LINE# 278 + C:0E90H LINE# 279 + C:0EAEH LINE# 280 + ------- ENDPROC TIMER0_ISR + ------- PROC UART_ISR + C:1330H LINE# 283 + C:1339H LINE# 284 + C:133CH LINE# 285 + C:133CH LINE# 286 + C:133EH LINE# 287 + C:1341H LINE# 288 + C:1348H LINE# 289 + C:134AH LINE# 290 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 10 + + + C:134CH LINE# 291 + C:134CH LINE# 292 + C:135AH LINE# 293 + ------- ENDPROC UART_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:1584H LINE# 294 + C:1584H LINE# 295 + C:1584H LINE# 298 + C:1585H LINE# 299 + C:1586H LINE# 300 + C:1588H LINE# 301 + C:158AH LINE# 302 + C:158CH LINE# 303 + C:158CH LINE# 304 + C:158CH LINE# 305 + C:158EH LINE# 306 + C:1590H LINE# 307 + C:1592H LINE# 308 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:1050H LINE# 311 + C:1050H LINE# 312 + C:1053H LINE# 313 + C:1056H LINE# 314 + C:1059H LINE# 315 + C:105CH LINE# 316 + C:105FH LINE# 317 + C:106DH LINE# 318 + C:1075H LINE# 319 + C:1075H LINE# 320 + C:1081H LINE# 321 + C:1083H LINE# 322 + C:1083H LINE# 323 + C:108FH LINE# 324 + C:108FH LINE# 325 + C:10A3H LINE# 326 + C:10A3H LINE# 327 + C:10A6H LINE# 328 + C:10A9H LINE# 329 + C:10ACH LINE# 330 + C:10AFH LINE# 331 + C:10B2H LINE# 332 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:1467H PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 11 + + + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:128BH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + C:148AH PUBLIC MOTOR + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:1444H PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:0008H SYMBOL temp + D:0009H SYMBOL temp_old + ------- ENDDO + C:128BH LINE# 5 + C:128BH LINE# 6 + C:128BH LINE# 10 + C:128EH LINE# 11 + C:129DH LINE# 13 + C:12ABH LINE# 14 + C:12B1H LINE# 15 + C:12B1H LINE# 16 + C:12B6H LINE# 17 + C:12BEH LINE# 18 + C:12C1H LINE# 19 + C:12C4H LINE# 20 + C:12C4H LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0021H.6 SYMBOL enable + ------- DO + D:000AH SYMBOL temp + D:000BH SYMBOL temp_old + ------- ENDDO + C:1444H LINE# 24 + C:1444H LINE# 25 + C:1444H LINE# 28 + C:1447H LINE# 29 + C:144CH LINE# 31 + C:144FH LINE# 32 + C:1455H LINE# 33 + C:1455H LINE# 34 + C:1458H LINE# 35 + C:1460H LINE# 36 + C:1463H LINE# 37 + C:1466H LINE# 38 + C:1466H LINE# 39 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0021H.7 SYMBOL enable + ------- DO + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 12 + + + D:000CH SYMBOL temp + D:000DH SYMBOL temp_old + ------- ENDDO + C:1467H LINE# 42 + C:1467H LINE# 43 + C:1467H LINE# 46 + C:146AH LINE# 47 + C:146FH LINE# 49 + C:1472H LINE# 50 + C:1478H LINE# 51 + C:1478H LINE# 52 + C:147BH LINE# 53 + C:1483H LINE# 54 + C:1486H LINE# 55 + C:1489H LINE# 56 + C:1489H LINE# 57 + ------- ENDPROC RELAY + ------- PROC MOTOR + B:0022H.0 SYMBOL enable + ------- DO + D:000EH SYMBOL temp + D:000FH SYMBOL temp_old + ------- ENDDO + C:148AH LINE# 60 + C:148AH LINE# 61 + C:148AH LINE# 64 + C:148DH LINE# 65 + C:1492H LINE# 67 + C:1495H LINE# 68 + C:149BH LINE# 69 + C:149BH LINE# 70 + C:149EH LINE# 71 + C:14A6H LINE# 72 + C:14A9H LINE# 73 + C:14ACH LINE# 74 + C:14ACH LINE# 75 + ------- ENDPROC MOTOR + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:11D8H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:1593H PUBLIC seg_dula + D:00D0H PUBLIC PSW + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 13 + + + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:11D8H LINE# 5 + C:11D8H LINE# 7 + C:11DBH LINE# 8 + C:11E3H LINE# 11 + C:11F0H LINE# 12 + C:11F8H LINE# 13 + C:11FBH LINE# 16 + C:1202H LINE# 17 + C:1208H LINE# 18 + C:1210H LINE# 19 + C:1213H LINE# 20 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0FD6H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + B:00B0H.1 PUBLIC P31 + D:0098H PUBLIC SCON + B:00B0H.2 PUBLIC P32 + D:0088H PUBLIC TCON + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0FD6H LINE# 2 + C:0FD6H LINE# 3 + C:0FD8H LINE# 4 + C:0FDAH LINE# 5 + C:0FDCH LINE# 6 + C:0FDEH LINE# 7 + C:0FE0H LINE# 8 + C:0FE2H LINE# 9 + C:0FE7H LINE# 10 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 14 + + + C:0FECH LINE# 11 + C:0FF1H LINE# 12 + C:0FF6H LINE# 13 + C:0FF8H LINE# 14 + C:0FFAH LINE# 15 + C:0FFCH LINE# 16 + C:0FFEH LINE# 17 + C:1003H LINE# 18 + C:1008H LINE# 19 + C:100DH LINE# 20 + C:1012H LINE# 21 + C:1014H LINE# 22 + C:1016H LINE# 23 + C:1018H LINE# 24 + C:101AH LINE# 25 + C:101FH LINE# 26 + C:1024H LINE# 27 + C:1029H LINE# 28 + C:102EH LINE# 29 + C:1030H LINE# 30 + C:1032H LINE# 31 + C:1034H LINE# 32 + C:1036H LINE# 33 + C:103BH LINE# 34 + C:1040H LINE# 35 + C:1045H LINE# 36 + C:104AH LINE# 37 + C:104CH LINE# 38 + C:104FH LINE# 39 + C:104FH LINE# 40 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:14EBH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:14EBH LINE# 3 + C:14EBH LINE# 4 + C:14EBH LINE# 5 + C:14EEH LINE# 6 + C:14F6H LINE# 7 + C:14F9H LINE# 9 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 15 + + + C:14FCH LINE# 10 + C:1504H LINE# 11 + C:1507H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE UART + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + B:00A8H.7 PUBLIC EA + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + B:00A8H.4 PUBLIC ES + D:00B8H PUBLIC IP + B:0098H.1 PUBLIC TI + D:00D8H PUBLIC CCON + D:0099H PUBLIC SBUF + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + C:1508H PUBLIC Uart1_Init + B:00A8H.3 PUBLIC ET1 + D:008DH PUBLIC TH1 + D:008BH PUBLIC TL1 + B:0088H.6 PUBLIC TR1 + D:00D0H PUBLIC PSW + C:0003H PUBLIC _putchar + ------- PROC UART1_INIT + C:1508H LINE# 2 + C:1508H LINE# 3 + C:1508H LINE# 4 + C:150BH LINE# 5 + C:150EH LINE# 6 + C:1511H LINE# 7 + C:1514H LINE# 8 + C:1517H LINE# 9 + C:151AH LINE# 10 + C:151CH LINE# 11 + C:151EH LINE# 12 + C:1520H LINE# 13 + C:1522H LINE# 14 + ------- ENDPROC UART1_INIT + ------- PROC _PUTCHAR + D:0007H SYMBOL ch + C:0003H LINE# 16 + C:0003H LINE# 17 + C:0005H LINE# 18 + C:0008H LINE# 19 + C:000AH LINE# 20 + C:000AH LINE# 21 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 16 + + + ------- ENDPROC _PUTCHAR + ------- ENDMOD UART + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:13FBH PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:1527H SYMBOL _I2C_Delay + C:156FH PUBLIC _Da_Write + D:00B8H PUBLIC IP + C:13AFH PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + C:1156H PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + C:1110H PUBLIC _EEPROM_Write + B:00A0H.0 PUBLIC scl + C:15A2H PUBLIC I2CStart + C:1557H PUBLIC _I2CSendAck + C:12FBH PUBLIC _I2CSendByte + C:1432H PUBLIC I2CWaitAck + C:15B1H PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:1523H SYMBOL L?0036 + ------- PROC L?0035 + ------- ENDPROC L?0035 + C:1523H SYMBOL L?0036 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:1527H LINE# 14 + C:1527H LINE# 15 + C:1527H LINE# 16 + C:1528H LINE# 17 + C:1529H LINE# 18 + C:152AH LINE# 19 + C:152BH LINE# 20 + C:152CH LINE# 21 + C:152DH LINE# 22 + C:152EH LINE# 23 + C:152FH LINE# 24 + C:1530H LINE# 25 + C:1531H LINE# 26 + C:1532H LINE# 27 + C:1533H LINE# 28 + C:1534H LINE# 29 + C:1535H LINE# 30 + C:1536H LINE# 31 + C:153CH LINE# 32 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 17 + + + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:15A2H LINE# 35 + C:15A2H LINE# 36 + C:15A4H LINE# 37 + C:15A4H LINE# 38 + C:15A7H LINE# 39 + C:15A9H LINE# 40 + C:15AEH LINE# 41 + C:15B0H LINE# 42 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:15B1H LINE# 45 + C:15B1H LINE# 46 + C:15B3H LINE# 47 + C:15B3H LINE# 48 + C:15B6H LINE# 49 + C:15B8H LINE# 50 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:12FBH LINE# 54 + C:12FDH LINE# 57 + C:1309H LINE# 58 + C:130BH LINE# 59 + C:1310H LINE# 60 + C:1314H LINE# 61 + C:1316H LINE# 62 + C:1318H LINE# 63 + C:131AH LINE# 64 + C:131AH LINE# 65 + C:131FH LINE# 66 + C:1321H LINE# 67 + C:1325H LINE# 68 + C:132AH LINE# 69 + C:132DH LINE# 71 + C:132FH LINE# 72 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:13AFH LINE# 75 + C:13AFH LINE# 78 + C:13BBH LINE# 79 + C:13BBH LINE# 80 + C:13BEH LINE# 81 + C:13C2H LINE# 82 + C:13C8H LINE# 83 + C:13CAH LINE# 84 + C:13CFH LINE# 85 + C:13D2H LINE# 86 + C:13D4H LINE# 87 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 18 + + + ------- ENDPROC I2CRECEIVEBYTE + C:1427H SYMBOL L?0034 + ------- PROC L?0033 + ------- ENDPROC L?0033 + C:1427H SYMBOL L?0034 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:1432H LINE# 90 + C:1432H LINE# 93 + C:1432H LINE# 94 + C:1435H LINE# 95 + C:143AH LINE# 96 + C:143CH LINE# 97 + C:1441H LINE# 99 + C:1443H LINE# 100 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:1557H LINE# 103 + C:1557H LINE# 104 + C:1559H LINE# 105 + C:155EH LINE# 106 + C:1563H LINE# 107 + C:1563H LINE# 108 + C:1566H LINE# 109 + C:1568H LINE# 110 + C:156AH LINE# 111 + ------- ENDPROC _I2CSENDACK + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:13FBH LINE# 114 + C:13FDH LINE# 117 + C:1400H LINE# 118 + C:1402H LINE# 119 + C:1402H LINE# 120 + C:1402H LINE# 121 + C:1405H LINE# 122 + C:1408H LINE# 123 + C:140DH LINE# 124 + C:1410H LINE# 125 + C:1415H LINE# 126 + C:141AH LINE# 127 + C:141DH LINE# 128 + C:141FH LINE# 129 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:156FH LINE# 131 + C:1571H LINE# 133 + C:1574H LINE# 134 + C:1579H LINE# 135 + C:157CH LINE# 137 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 19 + + + C:157EH LINE# 138 + C:157EH LINE# 139 + C:157EH LINE# 140 + C:1581H LINE# 141 + ------- ENDPROC _DA_WRITE + ------- PROC _EEPROM_WRITE + D:005EH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0062H SYMBOL num + C:1110H LINE# 148 + C:1116H LINE# 149 + C:1116H LINE# 151 + C:1116H LINE# 152 + C:1116H LINE# 153 + C:1116H LINE# 155 + C:1116H LINE# 156 + C:1119H LINE# 157 + C:1120H LINE# 158 + C:1135H LINE# 159 + C:1138H LINE# 160 + C:113DH LINE# 161 + C:113FH LINE# 162 + C:1144H LINE# 163 + C:1149H LINE# 164 + C:114EH LINE# 165 + C:1153H LINE# 166 + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:005EH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0062H SYMBOL num + C:1156H LINE# 172 + C:115CH LINE# 173 + C:115CH LINE# 175 + C:115CH LINE# 176 + C:115CH LINE# 177 + C:115CH LINE# 179 + C:115CH LINE# 180 + C:115FH LINE# 183 + C:1162H LINE# 184 + C:1167H LINE# 185 + C:116AH LINE# 186 + C:1171H LINE# 187 + C:1186H LINE# 188 + C:118AH LINE# 189 + C:118EH LINE# 191 + C:1193H LINE# 192 + C:1195H LINE# 193 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:13D5H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 20 + + + C:14D1H PUBLIC _Delay_OneWire + C:15BDH PUBLIC Delay4us + C:1361H PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:1388H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:1250H PUBLIC rd_temperature + D:00D0H PUBLIC PSW + ------- PROC DELAY4US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:15BDH LINE# 10 + C:15BDH LINE# 11 + C:15BDH LINE# 14 + C:15BEH LINE# 15 + C:15BFH LINE# 16 + C:15C1H LINE# 17 + C:15C3H LINE# 19 + ------- ENDPROC DELAY4US + C:14CDH SYMBOL L?0023 + ------- PROC L?0022 + ------- ENDPROC L?0022 + C:14CDH SYMBOL L?0023 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:14D1H LINE# 22 + C:14D1H LINE# 23 + C:14D1H LINE# 25 + C:14DBH LINE# 26 + C:14DBH LINE# 27 + C:14EAH LINE# 29 + C:14EAH LINE# 30 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:1361H LINE# 33 + C:1363H LINE# 34 + C:1363H LINE# 36 + C:136FH LINE# 37 + C:136FH LINE# 38 + C:1371H LINE# 39 + C:1375H LINE# 40 + C:1378H LINE# 41 + C:137AH LINE# 42 + C:137EH LINE# 43 + C:1381H LINE# 44 + ------- ENDPROC _WRITE_DS18B20 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 21 + + + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:13D5H LINE# 48 + C:13D5H LINE# 49 + C:13D5H LINE# 53 + C:13E1H LINE# 54 + C:13E1H LINE# 55 + C:13E3H LINE# 56 + C:13E7H LINE# 57 + C:13E9H LINE# 58 + C:13ECH LINE# 59 + C:13EFH LINE# 60 + C:13EFH LINE# 61 + C:13F2H LINE# 62 + C:13F2H LINE# 63 + C:13F5H LINE# 64 + C:13F8H LINE# 65 + C:13FAH LINE# 66 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.0 SYMBOL initflag + ------- ENDDO + C:1388H LINE# 69 + C:1388H LINE# 70 + C:1388H LINE# 71 + C:138AH LINE# 73 + C:138CH LINE# 74 + C:1393H LINE# 75 + C:1395H LINE# 76 + C:139CH LINE# 77 + C:139EH LINE# 78 + C:13A5H LINE# 79 + C:13A9H LINE# 80 + C:13ACH LINE# 82 + C:13AEH LINE# 83 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:1250H LINE# 85 + C:1250H LINE# 86 + C:1250H LINE# 88 + C:1253H LINE# 89 + C:1258H LINE# 90 + C:125DH LINE# 91 + C:1264H LINE# 92 + C:1267H LINE# 93 + C:126CH LINE# 94 + C:1271H LINE# 95 + C:1276H LINE# 96 + C:1279H LINE# 97 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 22 + + + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ULTRASONIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + B:00A8H.7 PUBLIC EA + D:00F8H PUBLIC P7 + B:00D8H.7 PUBLIC CF + D:00F9H PUBLIC CH + D:00A8H PUBLIC IE + D:00E9H PUBLIC CL + B:00D8H.6 PUBLIC CR + D:00B8H PUBLIC IP + C:1214H PUBLIC Ut_Wave_Data + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:153DH PUBLIC Ut_Wave_Init + C:15C4H PUBLIC Delay12us + B:0090H.1 PUBLIC Rx + B:0090H.0 PUBLIC Tx + D:00D0H PUBLIC PSW + ------- PROC DELAY12US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:15C4H LINE# 6 + C:15C4H LINE# 7 + C:15C4H LINE# 10 + C:15C5H LINE# 11 + C:15C6H LINE# 12 + C:15C8H LINE# 13 + C:15CAH LINE# 15 + ------- ENDPROC DELAY12US + ------- PROC UT_WAVE_INIT + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:153DH LINE# 17 + C:153DH LINE# 18 + C:153DH LINE# 23 + C:1549H LINE# 24 + C:1549H LINE# 25 + C:154BH LINE# 26 + C:154EH LINE# 27 + C:1550H LINE# 28 + C:1553H LINE# 29 + C:1556H LINE# 30 + ------- ENDPROC UT_WAVE_INIT + ------- PROC UT_WAVE_DATA + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 23 + + + ------- DO + D:0006H SYMBOL time + ------- ENDDO + C:1214H LINE# 32 + C:1214H LINE# 33 + C:1214H LINE# 35 + C:1219H LINE# 36 + C:121BH LINE# 38 + C:121DH LINE# 39 + C:1220H LINE# 40 + C:1222H LINE# 41 + C:1224H LINE# 42 + C:122AH LINE# 44 + C:122CH LINE# 45 + C:122FH LINE# 46 + C:122FH LINE# 47 + C:1237H LINE# 49 + C:124BH LINE# 50 + C:124BH LINE# 52 + C:124BH LINE# 53 + C:124DH LINE# 54 + C:124FH LINE# 55 + C:124FH LINE# 56 + ------- ENDPROC UT_WAVE_DATA + ------- ENDMOD ULTRASONIC + + ------- MODULE ?C?FPMUL + C:0026H PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FPDIV + C:012FH PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FCAST + C:01D6H PUBLIC ?C?FCASTC + C:01D1H PUBLIC ?C?FCASTI + C:01CCH PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:020AH PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE PRINTF + D:005EH PUBLIC ?_PRINTF?BYTE + D:005EH PUBLIC ?_SPRINTF?BYTE + C:06BAH PUBLIC _PRINTF + C:06B4H PUBLIC _SPRINTF + ------- ENDMOD PRINTF + + ------- MODULE ?C?FPROUND + C:028BH PUBLIC ?C?FPROUND + ------- ENDMOD ?C?FPROUND + + ------- MODULE ?C?FPCONVERT + C:02BAH PUBLIC ?C?FPCONVERT + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 24 + + + ------- ENDMOD ?C?FPCONVERT + + ------- MODULE ?C?FPADD + C:03C4H PUBLIC ?C?FPADD + C:03C0H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + + ------- MODULE ?C?FTNPWR + C:04E5H PUBLIC ?C?FTNPWR + ------- ENDMOD ?C?FTNPWR + + ------- MODULE ?C?CLDPTR + C:0525H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CLDOPTR + C:053EH PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:056BH PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?UIDIV + C:057DH PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:05D2H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + + ------- MODULE ?C?SLCMP + C:05E0H PUBLIC ?C?SLCMP + ------- ENDMOD ?C?SLCMP + + ------- MODULE ?C?PLDIIDATA + C:05F6H PUBLIC ?C?PLDIIDATA + ------- ENDMOD ?C?PLDIIDATA + + ------- MODULE ?C?CCASE + C:0606H PUBLIC ?C?CCASE + ------- ENDMOD ?C?CCASE + + ------- MODULE ?C?MEMSET + C:062CH PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/16/2024 09:11:54 PAGE 25 + + + SEGMENT: ?PR?_AD_READ?IIC + +Program Size: data=106.1 xdata=0 code=5579 +LINK/LOCATE RUN COMPLETE. 4 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/ExtDll.iex b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Init.obj b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Init.obj new file mode 100644 index 0000000..294af5c Binary files /dev/null and b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Init.obj differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Key.obj b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Key.obj new file mode 100644 index 0000000..8255916 Binary files /dev/null and b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Key.obj differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Led.obj b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Led.obj new file mode 100644 index 0000000..fee4c95 Binary files /dev/null and b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Led.obj differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Seg.obj b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Seg.obj new file mode 100644 index 0000000..302add8 Binary files /dev/null and b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Seg.obj differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Uart.obj b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Uart.obj new file mode 100644 index 0000000..30ec572 Binary files /dev/null and b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Uart.obj differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Ultrasonic.obj b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..1661ad3 Binary files /dev/null and b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/Ultrasonic.obj differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/iic.obj b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/iic.obj new file mode 100644 index 0000000..0acebc2 Binary files /dev/null and b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/iic.obj differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/main.obj b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/main.obj new file mode 100644 index 0000000..9d71f69 Binary files /dev/null and b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/main.obj differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/onewire.obj b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/onewire.obj new file mode 100644 index 0000000..cced47a Binary files /dev/null and b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/onewire.obj differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan new file mode 100644 index 0000000..a06bd2a Binary files /dev/null and b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan differ diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan.build_log.htm b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..9a726e5 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan.build_log.htm @@ -0,0 +1,54 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=NQZI6-DWZWI-JUT4W-QWG7Q-0NQ0X-JEAU7 + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: STCMON51.DLL V0, 1, 0, 19 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+F:\competition\ű\blue-bridge-cup-learning\Ŀ\\10 ʮ_\ʮ\User\zuolan.uvproj +Project File Date: 05/08/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +main.c(110): warning C182: pointer to different objects +main.c(323): warning C182: pointer to different objects +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling Uart.c... +compiling iic.c... +compiling onewire.c... +compiling Ultrasonic.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_AD_READ?IIC +Program Size: data=106.1 xdata=0 code=5579 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 6 Warning(s). +
+ + diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan.hex b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan.hex new file mode 100644 index 0000000..9c76ffa --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan.hex @@ -0,0 +1,408 @@ +:1014AD00242562752C25352E32660D0A0023256202 +:1014BD00752C2562750D0A004552524F520D0A00CA +:1011980008550000000000000000083B0A0A0A0A7F +:1011A8000A0A0A0A082C0000000000000000014B8F +:0711B8001E01272301349BF7 +:1010B400AE52AF537C007D6412057DED4C7012126C +:1010C40012148F44E544D395274003D38001C3927F +:1010D4000BAE52AF537C017DF412057DED4C702BA9 +:1010E400121250E4FBFA79C8784212002612020A5E +:1010F4008E4C8F4DE54B75F064A4FFD3E54D9FE511 +:0C1104004C95F04003D38001C3920922F7 +:100C8E00AE52AF537C007D0A12057DED4C6003021F +:100C9E000DF9120FD68F23E5266523FF5523F52474 +:100CAE00E523F45FF525852326AF247E00EF640C43 +:100CBE007002D20CC3E52994E8E52894034007C2DC +:100CCE000CE4F550F551AD257C00ED640C7022302E +:100CDE000C1FC20CE54F1460100470150546E54656 +:100CEE0075F0038485F04680080549E5495401F501 +:100CFE0049EF640D4E7002D20DC3E52B94E8E52A40 +:100D0E009403400AC20D054EE54E5401F54EED64B6 +:100D1E000D4C70047F0180027F00A20DE4335F60F2 +:100D2E0065C20D054FE54F5401F54FE4F546F54903 +:100D3E00E54F64017008852743854B548048E54391 +:100D4E00B52706E554654B6037AE50AF51E4FCFD58 +:100D5E007BFF7AFFF9F8C31205E070077FFF7EFF75 +:100D6E00FC800BE5512401FFE43550FEE4FC8E506F +:100D7E008F517B007A007950756202E4FD121110DA +:100D8E0085432785544BE54914603204705DAF24CA +:100D9E007E00EF6410700FE54B70047D638005E5F7 +:100DAE004B24FEFD8D4BEF64114E703FE54B64639B +:100DBE007003FF8005E54B2402FF8F4B22AF247E8C +:100DCE0000EF6410700FE52770047D638005E52742 +:100DDE0024FBFD8D27EF64114E7010E527646370C0 +:0B0DEE0003FF8005E5272405FF8F2789 +:010DF90022D7 +:100AC700AE52AF537C007D1412057DED4C600302DE +:100AD7000C8DE54F147003020C47046003020C8D64 +:100AE700E54614605F147003020B72240260030270 +:100AF7000C8D753101753B0B753E0A753D0A753CCA +:100B07000AAE4CAF4D7C037DE812057D7C007D0A63 +:100B170012057D8D3FAE4CAF4D7C007D6412057D87 +:100B27007C007D0A12057D8D40AE4CAF4D7C007D6B +:100B37000A12057D7C007D0A12057D8D41AE4CAF02 +:100B47004D020C3DE4F531753B0C75400A753F0AC3 +:100B5700753E0A753D0A753C0AE54475F00A8475C9 +:100B6700F00A8485F041E544020C86E4F531753BD3 +:100B77000D753D0A753C0AAE50AF517C277D1012AA +:100B8700057D7C007D0A12057DED4C70047F0A808F +:100B970002AF058F3EEF640A701AAE50AF517C0367 +:100BA7007DE812057D7C007D0A12057DED4C700401 +:100BB7007F0A8014AE50AF517C037DE812057D7C1F +:100BC700007D0A12057DAF058F3FEF640A7019AEED +:100BD70050AF51FC7D6412057D7C007D0A12057DB6 +:100BE700ED4C70047F0A8014AE50AF517C007D64D9 +:100BF70012057D7C007D0A12057DAF058F40EF64ED +:100C07000A7019AE50AF51FC7D0A12057D7C007D3C +:100C17000A12057DED4C70047F0A8014AE50AF5167 +:100C27007C007D0A12057D7C007D0A12057DAF05DB +:100C37008F41AE50AF517C007D0A12057D8D422257 +:100C4700E4F531753B0E753D0A753C0AE54904F537 +:100C57003E75400A753F0AE549146014047027E59C +:100C67005475F00A8475F00A8485F041E554800FC5 +:100C7700E54375F00A8475F00A8485F041E543750C +:070C8700F00A8485F042220F +:1012C500E54E14600E047010300B047FCC80067F51 +:1012D5006680027F1412156FA209E433F555200BC1 +:1012E500047F0180027F008F56E54E70047F0180E8 +:0612F500027F008F57226A +:100F5500E545607CC3E548940A748094804071C27D +:100F65000AE4F548E535B4532AE536B454258544F5 +:100F750061AC4CAD4DE41201D1E4FBFA79C878427D +:100F850012012F8F658E648D638C627BFF7A1479D5 +:100F9500AD8028E535B4501DE536B44118E537B4C4 +:100FA5005213E538B4410E7BFF7A1479BA8527616F +:100FB500854B6280067BFF7A1479C51206BAAF4568 +:100FC5007E007D007B007A00793512062CE4F5451C +:010FD50022F9 +:10000E00538E7F5389F0758A18758CFCC28DD28CF5 +:05001E00D2A9D2AF22BF +:03000B00020DFAE9 +:100DFA00C0E0C0F0C083C082C0D075D000C000C0BF +:0D0E0A0001C002C003C004C005C006C0073F +:100E17000553E55370020552FFAE52BE0309BFE802 +:100E270006755200755300300C190529E529700223 +:100E37000528C394E8E5289403400E75280375290F +:100E4700E98006752800752900300D19052BE52B5B +:100E57007002052AC394E8E52A9403400E752A0315 +:100E6700752BE98006752A00752B00300A020548A4 +:100E7700054AE54A5407F54A243BF8E6FD742C2554 +:100E87004AF8E6FBAF4A1211D8755D00C3E55D94D9 +:100E9700087480948050107455255DF8E6FDAF5DA9 +:070EA70012128B055D80E5CE +:100EAE00D007D006D005D004D003D002D001D00098 +:0B0EBE00D0D0D082D083D0F0D0E03242 +:0300230002133095 +:10133000C0E0C0D075D000C000309810D20A754807 +:101340000074352545F8A6990545C298D3E545941E +:1013500006748094804003754500D000D0D0D0E062 +:01136000325A +:0E15840000007F237E337DB6DDFEDEFCDFFA45 +:011592002236 +:101050001214EB12000E1215081212501215847B96 +:10106000007A0079477562017D08121156E54765DF +:10107000347B00600E7A0079347562017D081211AC +:1010800010800C7A007950756202E4FD121156123C +:101090001250E4FBFA79C8784212002612020A8E36 +:1010A0004C8F4D1210B4120C8E120AC7120F55122B +:0410B00012C580EFF6 +:1011BF000108000109FF010A00010BFF010C0001EA +:0811CF000DFF010E00010FFFEE +:10128B00ED600FA8077401088002C333D8FC420835 +:10129B00800EA8077401088002C333D8FCF45208EF +:1012AB00E50865096013E508F4F580E5A0541F44D3 +:0912BB0080F5A053A01F8508096D +:0112C4002207 +:10144400300E05430A408003530ABFE50A650B606A +:1014540011850A80E5A0541F44A0F5A053A01F8560 +:021464000A0B71 +:011466002263 +:10146700300F05430C108003530CEFE50C650D603E +:1014770011850C80E5A0541F44A0F5A053A01F853B +:021487000C0D4A +:011489002240 +:10148A00301005430E208003530EDFE50E650F6012 +:10149A0011850E80E5A0541F44A0F5A053A01F8516 +:0214AA000E0F23 +:0114AC00221D +:0F159300C0F9A4B0999282F88090FFC6C7AB8CC4 +:1011D8007580FFE5A0541F44E0F5A0A80774010836 +:1011E8008002C333D8FCF580E5A0541F44C0F5A0A5 +:1011F80053A01FED90159393F580EB600353807F08 +:0C120800E5A0541F44E0F5A053A01F22F5 +:100FD600E4FFC2A9C2C4D2C2D2B5D2B420B3027F42 +:100FE6000420B2027F0520B1027F0620B0027F07EF +:100FF600D2C4C2C2D2B5D2B420B3027F0820B20294 +:101006007F0920B1027F0A20B0027F0BD2C4D2C270 +:10101600C2B5D2B420B3027F0C20B2027F0D20B13C +:10102600027F0E20B0027F0FD2C4D2C2D2B5C2B4A4 +:1010360020B3027F1020B2027F1120B1027F12205E +:09104600B0027F13D2A975B0FFBE +:01104F00227E +:1014EB007580FFE5A0541F4480F5A053A01FE4F5C1 +:0D14FB0080E5A0541F44A0F5A053A01F22BF +:10150800759850538EBF538EFE53890F758BCC75CB +:0B1518008DFFC2ABD28ED2ACD2AF224E +:080003008F993099FDC299228A +:04152300D2A07F05CE +:10152700000000000000000000000000000000AE06 +:06153700071FEE70EB221D +:0F15A200D2A1121523C2A17F05121527C2A022C4 +:0C15B100C2A1121523D2A17F050215274C +:0212FB00AD073D +:1012FD00E4FCECC39408748094805024C2A07F0554 +:10130D00121527ED30E704D2A18002C2A17F05128C +:10131D001527D2A0ED25E0FD7F051215270C80D2F3 +:02132D00C2A05C +:01132F00229B +:1013AF00E4FCECC39408748094805017121523ED5D +:1013BF0025E0FD30A103430501C2A07F05121527CB +:0513CF000C80DFAF05FA +:0113D40022F6 +:10142000AB051215A27FA01212FB121432AF0312E9 +:0214300012FBAD +:10143200121523A2A1E433FDC2A07F05121527AF26 +:0114420005A4 +:011443002286 +:10155700C2A0EF24FF92A17F05121527121523C2FF +:08156700A0D2A17F05021527A7 +:0213FB00AB073E +:1013FD001215A27F901214271215A27F911212FBC3 +:10140D001214321213AFAD077F011215571215B119 +:02141D00AF0519 +:01141F0022AA +:10156F00AB071215A27F901212FB1214327F411299 +:05157F0014270215B164 +:101110008B5E8A5F8960121420AF621562EF601FD8 +:10112000AB5E0560E560AA5F7002055F14F9120509 +:1011300025FF1212FB1214327FC812152780DA7FA6 +:10114000FF1215277FFF1215277FFF1215277FFF3C +:061150001215270215B183 +:101156008B5E8A5F89601214201215A27FA112127B +:10116600FB121432AF621562EF60241213AFAB5E4E +:101176000560E560AA5F7002055F14F9EF12056B62 +:10118600E5626004E4FF80027F0112155780D502F4 +:0211960015B191 +:0615BD0000007F09DFFEC3 +:0115C3002205 +:0414CD007F057E0019 +:1014D100EF1FAA0670011E4A600FE4FDEDC3940CD4 +:0914E1007480948050EA0D80F340 +:0114EA0022DF +:02136100A907DA +:10136300E4FBEBC39408748094805012C294E91395 +:1013730092941214CDD294E9C313F90B80E47F0540 +:051383007E000214D100 +:1013D500E4FBEBC39408748094805017C294ECC36B +:1013E50013FCD2941215BD3094034304801214CD1E +:0513F5000B80DFAF04D6 +:0113FA0022D0 +:10138800C200D2947F0C7E001214D1C2947F507E8A +:10139800001214D1D2947F0A7E001214D1A2949222 +:0613A800001214CDA200AA +:0113AE00221C +:101250001213887FCC1213617F441213617FC87E02 +:10126000001214D11213887FCC1213617FBE1213A7 +:10127000611213D5A9071213D5EFAD01FCEC1201D1 +:0B128000D1E4FBFA7980783D020026E3 +:0615C40000007F21DFFEA4 +:0115CA0022FE +:10153D00E4FEEEC3940874809480500DD290121581 +:09154D00C4C2901215C40E80E91D +:011556002272 +:10121400E4F5E9F5F9F5D8C2AF12153DD2AFD2DE47 +:1012240030910330DFFAC2DE20DF1CAFF9EFFEADF0 +:10123400E9EDFFAC06E41201D17B967A43798B7811 +:0B1244003C12002602020AC2DF7F00FD +:01124F00227C +:10002600EC4D6011E8497017ED33EC3304600DE4D4 +:10003600FCFFFEFD22E933E8330470F80202761273 +:10004600024158046009E4CC248150062850090274 +:10005600028028400302027DC0E0EB4A7044B9806A +:1000660006D0E0FB02026CEF4E701CBD8008EBFF71 +:10007600EAFEE9FD80EBE98DF0A4FEE5F002010F52 +:10008600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89B5 +:10009600F0A42EFFE435F0CD89F0A42DFEE435F072 +:1000A6008067EF4E7005BD80D780C3EF8BF0A4ACA0 +:1000B600F0EE8BF0A42CFCE435F0F8EF8AF0A42CDB +:1000C600E5F038FCE433CB8DF0A42CFCE5F03BF8EE +:1000D600EE8AF0A42CFCE5F038F8E433CF89F0A4DE +:1000E6002CFCE5F038CF3400CE89F0A42FFFE5F0E4 +:1000F6003EFEE433C98DF0A42EFEE5F039CD8AF03C +:10010600A42FFFE5F03EFEE43DFD33D0E0FB5007B3 +:100116000BBB000F020280EC2CFCEF33FFEE33FE2C +:06012600ED33FD0202585A +:10012C00020280EC5D046005E8590470030202765B +:10013C00120241580460F6EC4860F2EC7004FDFECB +:10014C00FF22C860DB2481C85009C39860025006A6 +:10015C0002027D9850CAF582E9294B4A7005AB82A0 +:10016C0002026C75F0007C1A7880C3EF9BEE9AED5E +:10017C0099400DC3EF9BFFEE9AFEED99FDE842F01E +:10018C00DC23ACF0D0E0FFD0E0FED0E0FDAB822071 +:10019C00E7101BEB60BAEC2CFCEF33FFEE33FEEDFB +:1001AC0033FD020258E803F830E705C0F075F000A3 +:1001BC00EF2FFFEE33FEED33FD40B830E7C280AADF +:1001CC0075F020800E75F010800575F0087D007EAE +:1001DC00007F003392D530D5031205D2EC3340109A +:1001EC00EF33FFEE33FEED33FDEC33FCD5F0ED22B7 +:0E01FC00E5F0247EA2D513CC92E7CDCEFF22F3 +:10020A00EDD2E7CD33EC3392D524814006E4FFFEEC +:10021A00FDFC22FCE4CFCECDCC24E0501174FF804B +:10022A00EDC3CC13CCCD13CDCE13CECF13CF0470E8 +:07023A00F030D5DE0205D211 +:10065800E5752461F8E6057522785E300702786151 +:10066800E475F0011205F60205252000EB7F2ED275 +:10067800008018EF540F2490D43440D4FF30040B7A +:10068800EF24BFB41A0050032461FFE57660021519 +:10069800760579E5797002057830070D785EE4759E +:1006A800F0011205F6EF02056B0200037403D2078E +:1006B8008003E4C207F5758B5E8A5F8960E4F5768E +:1006C800F578F579E57660077F2012069380F57551 +:1006D80077FFC201C200C202C203C205C206C20835 +:1006E800120661FF700D3007057F001206A4AF796E +:1006F800AE7822B4255FC2D5C204120661FF24D0A9 +:10070800B40A00501A75F00A787630D50508B6FF95 +:100718000106C6A426F620D5047002D20380D92487 +:10072800CFB41A00EF5004C2E5D204020991D201F5 +:1007380080C6D20080C0D20280BCD2D580BAD20591 +:1007480080B47F201206932002077401B57600401A +:10075800F1120658FF1206930206CCD208D2068080 +:1007680095120658FB120658FA120658F94A4B70A9 +:100778000679887A0A7BFF20022EE576602A7E00B9 +:100788008E8275830012053E60060EEE657770F066 +:10079800C2D5EBC0E0EAC0E0E9C0E0EE1209F1D052 +:1007A800E0F9D0E0FAD0E0FB120525FF60AAEBC023 +:1007B800E0EAC0E0E9C0E0120693D0E02401F9D0F5 +:1007C800E03400FAD0E0FBE5770460DCD577D98027 +:1007D80087D20280A21209D460F7E577700104126B +:1007E800028BA977600DE577600914F577120A7B0B +:1007F800EF60F3EA30E702F404C3995077EAF4258E +:10080800770430E701E404F577800D1209D460C15C +:10081800EA0577257712028BEA7874F630E701E467 +:10082800257704D57704200501141209F1E4C0E006 +:10083800120A7B7874E6601320E70714F612067B29 +:10084800802204F6D0E014C0E07F0012067BE57732 +:1008580060071206721577800B300503120672D0F6 +:10086800E00206CCD0E00480C51209D460A0E57788 +:100878000412028B7874EAF6E57720050260010419 +:0508880024041209F137 +:10088D0074FF04C0E0120A7B12067BE57720050297 +:10089D006003120672D0E0B577E87F4512068578C1 +:1008AD0074E67F2B30E7047F2DF404C0E01206932D +:1008BD00D0E075F00A84C0F012067CD0E012067C00 +:1008CD000206CC791080027908C206C2088008D2CF +:1008DD00D5790A8004790AC2D5E577047002F577D7 +:1008ED00E4FAFDFEFF120658FC7B082001131206E8 +:1008FD0058FD7B1030000A120658FE120658FF7B79 +:10090D0020EC3382D592D55013C3E43000069FFFFF +:10091D00E49EFEE42001039DFDE49CFCE4CBF8C2C3 +:10092D0001EC700CCFCECDCCE824F8F870F3801725 +:10093D00C3EF33FFEE33FEED33FDEC33FCEB33FB56 +:10094D00994002FB0FD8E9EB300105F8D0E0C4481F +:10095D00B201C0E00AEC4D4E4F78207B0070C2EA28 +:10096D00B5770040BCC0E01209F3D0F0D0E0200113 +:10097D0004C4C0E0C4B201C0F012067CD0F0D5F0C2 +:10098D00EB0206CC12060607695308D058073A4CFD +:10099D0007364208D44F08DC4408DC49074F4308AA +:1009AD00E25508134608714507DD470AA850073E72 +:1009BD002D07422E07652B0746230763200A912A30 +:1009CD0006FE480000075DE577B4FF037577061254 +:1009DD000658FC120658FD120658FE120658FF78EE +:1009ED006D0202BA790AA2D5200314300509B91097 +:1009FD00020404B9080104A2D52006025001042006 +:100A0D0002689202B576005034C0E07F20300319A1 +:100A1D007F30A20272067205500F120A4AC202C23C +:100A2D0006C205C2087F30800F300503E9C0E01211 +:100A3D000693300503D0E0F9D0E0B576CC3005173C +:100A4D007F30B9100C1206937F583004077F7880E1 +:100A5D0003B908031206933002057F2D0206937F1A +:100A6D00202008F87F2B2006F322920280CF7F00F2 +:100A7D00B407005005246DF8E6FF22286E756C6CE6 +:100A8D002900D2011206583001F8C201787630D50E +:100A9D000108F60206FE2D5043495812065824034C +:100AAD00B405004001E4900AA393120684743A122F +:0A0ABD000684D2037576040208D007 +:10024100E9D2E7C933E833F892D5EDD2E7CD33EC03 +:0702510033FC5002B2D5227C +:10025800EC30E7100FBF000C0EBE00080DBD000407 +:100268000BEB6014A2D5EB13FCED92E7FD2274FFB3 +:10027800FCFDFEFF22E480F8A2D574FF13FC7D800C +:03028800E480EF20 +:10028B00F920E72824F950037907E4F42402FB183A +:10029B00DBFDE624FB5014E9600DE4F618E604F6EA +:0F02AB00B40A08E4F6D9F57401F60A22C2D52286 +:1002BA00ED33EC3392D5FA602AB4FF33EDC2E77B13 +:1002CA00FF60067A0279DFE4227A0279E820D5040F +:1002DA007A0279E3224E614E002B494E46002D499F +:1002EA004E4600E47A08F608DAFC7B00740722E836 +:1002FA00C0E0ECC0E0EDC0E0EEC0E0EFC0E0EA75BF +:10030A00F010A4CAABF075F04DA42BFBE435F0FC59 +:10031A00EA2410FAEB34C5FBEC34D9FCEDC2E7FF52 +:10032A0075F056A4F42411C5F0F434C58FF0A42A4C +:10033A00E5F03BE43CF620E7141204E5D0E0FFD0F8 +:10034A00E0FED0E0FDD0E0FC12012F8014F404128C +:10035A0004E5D0E0FFD0E0FED0E0FDD0E0FC1200E2 +:10036A0026D0E0F8E6FAEDD2E7CD33EC332482FB6F +:10037A00E4C3CF33CFCE33CECD33CD33DBF37B07DC +:10038A0075F00A846004F6081B0AE5F0F6088FF097 +:10039A00740AA4FFACF08EF0740AA42CFEACF050E0 +:1003AA00010C8DF0740AA42CFDE435F0F608DBDEAE +:0303BA00740722A3 +:1003BD00020276E86480F8E933E83360110460F0F6 +:1003CD00ED33EC337009E8FCE9FDEAFEEBFF2204A6 +:1003DD0060DED3EB9FEA9EE99DE8C2E78CF0C2F7A1 +:1003ED0095F0400CE8CCF8E9CDF9EACEFAEBCFFB6D +:1003FD0012024185D0F05804700320D5B3E8047083 +:10040D00075002B2D502028092D5EC0460F7E4CC1D +:10041D00C0E0C398F8603B94186008400DD0E0FB35 +:10042D00020258E4FBFAC9FC8028E830E406E4C96E +:10043D00FBE4CAFCE830E305E4C9CACBFCE8540789 +:10044D006010F8C3E913F9EA13FAEB13FBEC13FC94 +:10045D00D8F130F52FC3E49CFCEF9BFFEE9AFEED37 +:10046D0099FDD0E0FBEF4E4D4C701222DB030202E2 +:10047D007DEC2CFCEF33FFEE33FEED33FDED30E77D +:10048D00EB020258EF2BFFEE3AFEED39FDD0E0FB0B +:10049D0050130BBB0003020280ED13FDEE13FEEFB4 +:0804AD0013FFEC13FC020258DE +:1004B5003F8000004120000042C80000447A00004F +:1004C500461C400047C35000497424004B189680D1 +:1004D5004CBEBC205A0E1BCA6753C21C749DC5AEC8 +:1004E500FB60065407601C2323120513EB54386088 +:1004F500091204FF12050E120026ECF8EDF9EEFACA +:10050500EFCB22EB12050E80F1543803241C900426 +:10051500B5FE93FC0EEE93FD0EEE930ECE93FF22E9 +:03000000020EC924 +:0C0EC900787FE4F6D8FD758179020F10E7 +:10052500BB010689828A83E0225002E722BBFE02D4 +:09053500E32289828A83E4932207 +:10053E00BB010CE58229F582E5833AF583E0225072 +:10054E0006E92582F8E622BBFE06E92582F8E222BC +:0D055E00E58229F582E5833AF583E49322D6 +:10056B00BB010689828A83F0225002F722BBFE016F +:02057B00F32269 +:10057D00BC000BBE0029EF8DF084FFADF022E4CC62 +:10058D00F875F008EF2FFFEE33FEEC33FCEE9DEC2B +:10059D00984005FCEE9DFE0FD5F0E9E4CEFD22ED71 +:1005AD00F8F5F0EE8420D21CFEADF075F008EF2FBB +:1005BD00FFED33FD4007985006D5F0F222C398FDAC +:0505CD000FD5F0EA2249 +:0E05D200C3E49FFFE49EFEE49DFDE49CFC223A +:1005E000EB9FF5F0EA9E42F0E99D42F0EC6480C892 +:0605F00064809845F02232 +:1005F600FAE6FB0808E6F925F0F618E6CA3AF62206 +:10060600D083D082F8E4937012740193700DA3A383 +:1006160093F8740193F5828883E473740293686097 +:06062600EFA3A3A380DF97 +:10062C00EF4E6012EF60010EEDBB010B89828A83E5 +:10063C00F0A3DFFCDEFA2289F05007F709DFFCA9F2 +:0C064C00F022BBFEFCF309DFFCA9F02249 +:100ED500021050E493A3F8E493A34003F68001F2D3 +:100EE50008DFF48029E493A3F85407240CC8C3331E +:100EF500C4540F4420C8834004F456800146F6DFED +:100F0500E4800B0102040810204080901198E47ED3 +:100F1500019360BCA3FF543F30E509541FFEE493E1 +:100F2500A360010ECF54C025E060A840B8E493A3A8 +:100F3500FAE493A3F8E493A3C8C582C8CAC583CAD3 +:100F4500F0A3C8C582C8CAC583CADFE9DEE780BE8B +:0111D7000017 +:00000001FF diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan.lnp b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan.lnp new file mode 100644 index 0000000..0e67c3f --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/Objects/zuolan.lnp @@ -0,0 +1,11 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\Uart.obj", +".\Objects\iic.obj", +".\Objects\onewire.obj", +".\Objects\Ultrasonic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/main.c b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/main.c new file mode 100644 index 0000000..7a86b1f --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/main.c @@ -0,0 +1,333 @@ +#include "main.h" + +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ڷ */ +uchar Uart_Buf[6]; // ڽյ +uchar Uart_Rx_Index; // ڽյݵָ + +/* ʱ䷽ */ +uint time_all_1s; +uint long_press_1s_12; // 1sļʱ +uint long_press_1s_13; // 1sļʱ +uchar Sys_Tick; // ઼ʱʱ +/* */ +uchar Seg_show_mode; // 0 1 +uchar Data_show_mode; // 0 ¶ 1 2 +uchar Para_show_mode; // 0 ¶ 1 +uchar Out_mode; // 0 1 ֹͣ +/* */ +uint T_value_100x; // ¶ȵ100 +uchar Dis_value; // +uint Change_times; // +uchar Para_T = 30; // ¶Ȳ +uchar Para_Dis = 35; // +uchar Para_T_temp; +uchar Para_Dis_temp; +/* ж*/ +bit press_12; // 12 +bit press_13; // 13 +bit Uart_flag; // ǷյϢ +bit out_range; // Ƿ񳬳Χ +bit hot_T; // Ƿ¶ȹ +/* ݴ */ +void Data_Proc() { + if (time_all_1s % 100 == 0) { + // ȡ + Dis_value = Ut_Wave_Data(); + out_range = Dis_value > Para_Dis; + } + if (time_all_1s % 500 == 0) { + // ¶ȶȡ + T_value_100x = rd_temperature() * 100; + hot_T = (T_value_100x > Para_T * 100); + } +} +/* ̴ */ +void Key_Proc() { + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (time_all_1s % 10) return; + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + + if (Key_Down == 12) { + press_12 = 1; // 12 + } + // ʱ + if (long_press_1s_12 >= 1000) { + press_12 = 0; + // ִг1sIJ + Change_times = 0; + } + // ̧12ʱûе1s + if (Key_Up == 12 && press_12) { + press_12 = 0; // ɿ12 + // ʱδɿ̰ + switch (Seg_show_mode) { + case 0: + /* */ + Data_show_mode = (++Data_show_mode) % 3; + break; + + case 1: + /* */ + Para_show_mode = (++Para_show_mode) % 2; + break; + } + } + if (Key_Down == 13) { + press_13 = 1; // 13 + } + // ʱ + if (long_press_1s_13 >= 1000) { + press_13 = 0; + // ִг + Out_mode = (++Out_mode) % 2; + } + // ̧13ʱûе1s + if (Key_Up == 13 & press_13) { + press_13 = 0; // ɿ13 + // ʱδɿ̰ + Seg_show_mode = (++Seg_show_mode) % 2; + Data_show_mode = 0; + Para_show_mode = 0; + if (Seg_show_mode == 1) { + // ҳ + Para_Dis_temp = Para_Dis; + Para_T_temp = Para_T; + } else { + // ˳ҳ + if (Para_Dis_temp != Para_Dis || Para_T_temp != Para_T) { + Change_times = (Change_times == 65535) ? 65535 : Change_times + 1; + EEPROM_Write(&Change_times, 0, 2); + } + Para_Dis = Para_Dis_temp; + Para_T = Para_T_temp; + } + } + switch (Para_show_mode) { + case 0: + /* ¶ */ + if (Key_Down == 16) Para_T = (Para_T <= 1) ? 99 : Para_T - 2; + if (Key_Down == 17) Para_T = (Para_T >= 98) ? 0 : Para_T + 2; + break; + + case 1: + /* */ + if (Key_Down == 16) Para_Dis = (Para_Dis <= 4) ? 99 : Para_Dis - 5; + if (Key_Down == 17) Para_Dis = (Para_Dis >= 95) ? 0 : Para_Dis + 5; + break; + } +} +/* ܴ */ +void Seg_Proc() { + if (time_all_1s % 20) return; + switch (Seg_show_mode) { + case 0: + /* */ + switch (Data_show_mode) { + case 0: + /* ¶ */ + Seg_Point[5] = 1; + Seg_Buf[0] = 11; // C + Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = 10; + Seg_Buf[4] = T_value_100x / 1000 % 10; + Seg_Buf[5] = T_value_100x / 100 % 10; + Seg_Buf[6] = T_value_100x / 10 % 10; + Seg_Buf[7] = T_value_100x % 10; + break; + + case 1: + /* */ + Seg_Point[5] = 0; + Seg_Buf[0] = 12; // L + Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + Seg_Buf[6] = Dis_value / 10 % 10; + Seg_Buf[7] = Dis_value % 10; + break; + + case 2: + /* */ + Seg_Point[5] = 0; + Seg_Buf[0] = 13; // n + Seg_Buf[1] = Seg_Buf[2] = 10; + Seg_Buf[3] = + (Change_times / 10000 % 10 == 0) ? 10 : Change_times / 10000 % 10; + Seg_Buf[4] = (Seg_Buf[3] == 10 && (Change_times / 1000 % 10 == 0)) + ? 10 + : Change_times / 1000 % 10; + Seg_Buf[5] = (Seg_Buf[4] == 10 && (Change_times / 100 % 10 == 0)) + ? 10 + : Change_times / 100 % 10; + Seg_Buf[6] = (Seg_Buf[5] == 10 && (Change_times / 10 % 10 == 0)) + ? 10 + : Change_times / 10 % 10; + Seg_Buf[7] = Change_times % 10; + break; + } + break; + + case 1: + /* */ + Seg_Point[5] = 0; + Seg_Buf[0] = 14; // P + Seg_Buf[1] = Seg_Buf[2] = 10; + Seg_Buf[3] = Para_show_mode + 1; + Seg_Buf[4] = Seg_Buf[5] = 10; + switch (Para_show_mode) { + case 0: + /* ¶ */ + Seg_Buf[6] = Para_T_temp / 10 % 10; + Seg_Buf[7] = Para_T_temp % 10; + break; + + case 1: + /* */ + Seg_Buf[6] = Para_Dis_temp / 10 % 10; + Seg_Buf[7] = Para_Dis_temp % 10; + break; + } + break; + } +} + +/* LED */ +void Led_Proc() { + switch (Out_mode) { + case 0: + /* */ + if (out_range) + Da_Write(4 * 51); // Χ4V + else + Da_Write(2 * 51); // ûΧ2V + break; + + case 1: + /* ֹͣ */ + Da_Write(0.4 * 51); // ֹͣ״̬0.4V + break; + } + ucLed[0] = hot_T; + ucLed[1] = !out_range; + ucLed[2] = !Out_mode; +} + +/* ڴ */ +void Uart_Proc() { + if (Uart_Rx_Index == 0) return; + // 10msûյ + if (Sys_Tick >= 10) { + Sys_Tick = Uart_flag = 0; + if (Uart_Buf[0] == 'S' && Uart_Buf[1] == 'T') { + printf("$%bu,%5.2f\r\n", Dis_value, (float)T_value_100x / 100.0); + } else if (Uart_Buf[0] == 'P' && Uart_Buf[1] == 'A' && Uart_Buf[2] == 'R' && + Uart_Buf[3] == 'A') { + printf("#%bu,%bu\r\n", Para_Dis, Para_T); + } else { + printf("ERROR\r\n"); + } + memset(Uart_Buf, 0, Uart_Rx_Index); + Uart_Rx_Index = 0; + } +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 { + uchar i; + if (++time_all_1s == 1000) time_all_1s = 0; + // ʱ + if (press_12) { + if (++long_press_1s_12 >= 1000) { + long_press_1s_12 = 1001; + } + } else { + long_press_1s_12 = 0; + } + if (press_13) { + if (++long_press_1s_13 >= 1000) { + long_press_1s_13 = 1001; + } + } else { + long_press_1s_13 = 0; + } + + // લ + if (Uart_flag) Sys_Tick++; + Seg_Pos = (++Seg_Pos) % 8; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + for (i = 0; i < 8; i++) Led_Disp(i, ucLed[i]); +} + +/* жϷ */ +void Uart_ISR(void) interrupt 4 { + if (RI == 1) // ڽյ + { + Uart_flag = 1; + Sys_Tick = 0; // ܼʱ + Uart_Buf[Uart_Rx_Index] = SBUF; + Uart_Rx_Index++; + RI = 0; + } + if (Uart_Rx_Index > 6) Uart_Rx_Index = 0; +} +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do { + do { + while (--k); + } while (--j); + } while (--i); +} +uchar passwd = 155; +uchar input_passwd; +void main() { + System_Init(); + Timer0_Init(); + Uart1_Init(); + rd_temperature(); + Delay750ms(); + EEPROM_Read(&input_passwd, 8, 1); // òдĵطУ + if (input_passwd != passwd) // Уʧܣ֮ǰδд1/256ʳ + { + EEPROM_Write(&passwd, 8, 1); + } else // УͨȡҪ + { + EEPROM_Read(&Change_times, 0, 2); + } + T_value_100x = rd_temperature() * 100; + while (1) { + Data_Proc(); + Key_Proc(); + Seg_Proc(); + Uart_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/main.h b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/main.h new file mode 100644 index 0000000..b7aac13 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/main.h @@ -0,0 +1,14 @@ +#include "Init.h" +#include "Key.h" +#include "Led.h" +#include "STC15F2K60S2.H" +#include "Seg.h" +#include "Uart.h" +#include "Ultrasonic.h" +#include "iic.h" +#include "intrins.h" +#include "onewire.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvgui.haze b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvgui.haze new file mode 100644 index 0000000..828d25c --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvgui.haze @@ -0,0 +1,1387 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 9 + 9 + 1543 + 823 + + + + 0 + + 539 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000400000002000000010000004C433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675C64656D6F5F7A756F6C616E5F6F6C645C4472697665725C556172742E680000000006556172742E6800000000BCA8E100FFFFFFFF25443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000F0A0A100FFFFFFFF4A433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675C64656D6F5F7A756F6C616E5F6F6C645C557365725C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF4C433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675C64656D6F5F7A756F6C616E5F6F6C645C4472697665725C556172742E630000000006556172742E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000094010000660000000006000036020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100006600000070040000D3000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000370200000006000006030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000060300000006000019030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100006600000070040000D3000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200006600000070040000B7010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100001F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000009001000036020000000000004F000000900100001F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000A701000070040000280200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000001F020000000600002302000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000003A020000000600001D030000000000002302000000060000060300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2076 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000094B65795F636F756E7496000000000000000400094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E676500000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 2 + + ..\Driver\Uart.h + 20 + 1 + 1 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 12 + 45 + 55 + 1 + + 0 + + + ..\Driver\Uart.c + 0 + 1 + 1 + 1 + + 0 + + + + +
diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvgui.zuolan b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvgui.zuolan new file mode 100644 index 0000000..53d289c --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvgui.zuolan @@ -0,0 +1,2601 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 674 448 + + + 204 + Performance Analyzer + 1122 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 2 + 3 + + -32000 + -32024 + + + -1 + -1 + + + 1 + 1 + 1535 + 781 + + + + 0 + + 294 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000062463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313020B5DACAAEBDECB9FAC8FC5FD7F3E1B05CB5DACAAEBDECB9FAC8FC5C557365725C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E0000000006000060020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000B7000000 + + + 16 + 940100007E00000070040000E6000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000018020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000018020000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000018020000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000018020000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000004902000000060000E4020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000007B01000070040000F7010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004C020000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000018020000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004C020000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000004C020000FD050000CB020000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E402000000060000F7020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000B700000070040000BB000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000E6000000940100004F00000070040000B70000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008B010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000BA010000E00200004F000000700400008B0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000031020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E0000009001000060020000000000004F00000090010000310200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000077010000700400007B01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000AA0100007004000026020000000000007B01000070040000F701000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF380200007B0100003C020000F701000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000031020000000600003502000001000000010000100400000001000000A4FDFFFF2E000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000640200000006000013030000000000003502000000060000E40200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2013 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000003503331960000000000000001000350333100000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000000060000B7000000 + + + 16 + 940100007E00000000060000E6000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000007020000 + + + 16 + 700000009F000000000200002F020000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000007020000 + + + 16 + 700000009F0000005301000041020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000A802000007010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000A802000007010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000A802000007010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000A802000007010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 700000009F000000A802000007010000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000000200002F020000 + + + + 1936 + 1936 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000000200002F020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000000200002F020000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000A802000007010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000A802000007010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000A802000007010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000A802000007010000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000007020000 + + + 16 + 700000009F0000005301000041020000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000007020000 + + + 16 + 700000009F0000005301000041020000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 700000009F000000A802000007010000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000002402000000030000E4020000 + + + 16 + 700000009F000000A802000007010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 700000009F000000A802000007010000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 940100006300000000060000B7000000 + + + 16 + 700000009F000000A802000007010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 700000009F000000A802000007010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000A802000007010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 700000009F000000A802000007010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 700000009F000000A802000007010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 700000009F000000A802000007010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 700000009F000000000200002F020000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000007020000 + + + 16 + 700000009F0000005301000041020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 700000009F000000A802000007010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 700000009F0000005301000041020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000000200002F020000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 070300003B020000FD050000CB020000 + + + 16 + 700000009F000000000200002F020000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E402000000060000F7020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2618 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF94010000B700000000060000BB000000010000000100001004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000940100007E00000000060000E6000000940100004F00000000060000B70000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008B010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000BA010000E00200004F000000700400008B0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000020020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100004F020000000000004F00000090010000200200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000200200000006000024020000010000000100001004000000010000005CFEFFFF1700000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000100000004030000530200000006000013030000040300002402000000060000E402000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFF000300002402000004030000E402000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000008B010000700400008F010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000000000000000000BE0100007004000026020000000000008F01000070040000F70100000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2013 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000003503331960000000000000001000350333100000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020003001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000000180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 0 + + .\main.c + 0 + 229 + 234 + 1 + + 0 + + + + +
diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvopt b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvopt new file mode 100644 index 0000000..d7529d1 --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvopt @@ -0,0 +1,313 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + + + + + + + + + + + BIN\STCMON51.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 + STCMON51 + -S7 -B115200 -O0 + + + + + + 0 + 1 + Change_times + + + 1 + 1 + Dis_value,0x0A + + + 2 + 1 + T_value_100x,0x0A + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 1 + 0 + 0 + 0 + ..\Driver\Uart.c + Uart.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + 2 + 9 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Ultrasonic.c + Ultrasonic.c + 0 + 0 + + + +
diff --git a/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvproj b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvproj new file mode 100644 index 0000000..05e348c --- /dev/null +++ b/题目/真题/10 第十届国赛_左岚/第十届国赛/User/zuolan.uvproj @@ -0,0 +1,420 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 10 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + Uart.c + 1 + ..\Driver\Uart.c + + + iic.c + 1 + ..\Driver\iic.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + Ultrasonic.c + 1 + ..\Driver\Ultrasonic.c + + + + + + + +
diff --git a/题目/真题/10 第十届省赛_左岚/第10届省赛-电压和频率采集与显示.pdf b/题目/真题/10 第十届省赛_左岚/第10届省赛-电压和频率采集与显示.pdf new file mode 100644 index 0000000..67b09e9 Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第10届省赛-电压和频率采集与显示.pdf differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/.vscode/settings.json b/题目/真题/10 第十届省赛_左岚/第十届省赛/.vscode/settings.json new file mode 100644 index 0000000..3c3fa7e --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "led.h": "c" + } +} \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Init.c b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Init.h b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Key.c b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Key.c new file mode 100644 index 0000000..aea6d19 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Key.c @@ -0,0 +1,62 @@ +#include + +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + // 1 + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + // 2 + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + // 3 + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + // 4 + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + P3 = 0xff; + ET0 = 1; + return temp; +} \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Key.h b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Key.h new file mode 100644 index 0000000..898c524 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Key.h @@ -0,0 +1,3 @@ +#include + +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Led.c b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Led.c new file mode 100644 index 0000000..f1df0fe --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Led.c @@ -0,0 +1,56 @@ +#include +//ַ0-7Ƿʹ +void Led_Disp(unsigned char addr,enable) +{ + //ֵ֤Ϊı + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + //ĵǰ״̬ + if(enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + //ǰ״̬֮ǰ״̬ͬвled + if(temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} + + +void Beep(unsigned char flag) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if(flag) + temp |= 0x40; + else + temp &= ~0x40; + if(temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} + +void Relay(unsigned char flag) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if(flag) + temp |= 0x10; + else + temp &= ~0x10; + if(temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Led.h b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Led.h new file mode 100644 index 0000000..493bdf6 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Led.h @@ -0,0 +1,5 @@ +#include + +void Led_Disp(unsigned char addr,enable); +void Beep(unsigned char flag); +void Relay(unsigned char flag); \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Seg.c b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Seg.c new file mode 100644 index 0000000..afffb87 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Seg.c @@ -0,0 +1,22 @@ +#include +// ѡ 0 1 2 3 4 5 6 7 8 9 F U +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0x8e, 0xc1}; +// λѡ 2^0,2^1,2^2,2^3,2^4,2^52^6,2^7һ˸ +unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + +void Seg_Disp(unsigned char wela, dula, point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Seg.h b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Seg.h new file mode 100644 index 0000000..3c5c898 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/Seg.h @@ -0,0 +1,3 @@ +#include + +void Seg_Disp(unsigned char wela,dula,point); \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/iic.c b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/iic.c new file mode 100644 index 0000000..0135cf3 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/iic.c @@ -0,0 +1,196 @@ +/* + ˵: IIC + : Keil uVision 4.10 + Ӳ: CT107Ƭۺʵѵƽ̨ 805112MHz + : 2011-8-9 +*/ + +#include "iic.h" + + +#include "intrins.h" + +#define DELAY_TIME 5 + +#define Photo_Res_Channel 0x41 +#define Adj_Res_Channel 0x43 + + +//Ŷ +sbit SDA = P2^1; /* */ +sbit SCL = P2^0; /* ʱ */ + +void IIC_Delay(unsigned char i) +{ + do { + _nop_(); + } + while(i--); +} + +// +void IIC_Start(void) +{ + SDA = 1; + SCL = 1; + IIC_Delay(DELAY_TIME); + SDA = 0; + IIC_Delay(DELAY_TIME); + SCL = 0; +} + +//ֹͣ +void IIC_Stop(void) +{ + SDA = 0; + SCL = 1; + IIC_Delay(DELAY_TIME); + SDA = 1; + IIC_Delay(DELAY_TIME); +} + +//Ӧ +void IIC_SendAck(bit ackbit) +{ + SCL = 0; + SDA = ackbit; // 0Ӧ1Ӧ + IIC_Delay(DELAY_TIME); + SCL = 1; + IIC_Delay(DELAY_TIME); + SCL = 0; + SDA = 1; + IIC_Delay(DELAY_TIME); +} + +//ȴӦ +bit IIC_WaitAck(void) +{ + bit ackbit; + + SCL = 1; + IIC_Delay(DELAY_TIME); + ackbit = SDA; + SCL = 0; + IIC_Delay(DELAY_TIME); + return ackbit; +} + +//ͨI2C߷ +void IIC_SendByte(unsigned char byt) +{ + unsigned char i; + + for(i=0; i<8; i++) + { + SCL = 0; + IIC_Delay(DELAY_TIME); + if(byt & 0x80) SDA = 1; + else SDA = 0; + IIC_Delay(DELAY_TIME); + SCL = 1; + byt <<= 1; + IIC_Delay(DELAY_TIME); + } + SCL = 0; +} + +//I2CϽ +unsigned char IIC_RecByte(void) +{ + unsigned char i, da; + for(i=0; i<8; i++) + { + SCL = 1; + IIC_Delay(DELAY_TIME); + da <<= 1; + if(SDA) da |= 1; + SCL = 0; + IIC_Delay(DELAY_TIME); + } + return da; +} + + + + + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + IIC_Start(); + IIC_SendByte(0x90); + IIC_WaitAck(); + IIC_SendByte(addr); + IIC_WaitAck(); + IIC_Start(); + IIC_SendByte(0x91); + IIC_WaitAck(); + temp = IIC_RecByte(); + IIC_SendAck(1); + IIC_Stop(); + return temp; +} + +void Da_Write(unsigned char dat) +{ + IIC_Start(); + IIC_SendByte(0x90); + IIC_WaitAck(); + IIC_SendByte(0x41); + IIC_WaitAck(); + IIC_SendByte(dat); + IIC_WaitAck(); + IIC_Stop(); +} + + + +//дEEPROM +//ڲҪдַдĵַ(Ϊ8ı)д +//ֵ +//ܣEERPOMijַдַضַ +void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) +{ + IIC_Start();//Ϳź + IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + IIC_WaitAck();//ȴEEPROM + + IIC_SendByte(addr);//дҪ洢ݵַ + IIC_WaitAck();//ȴEEPROM + + while(num--) + { + IIC_SendByte(*EEPROM_String++);//ҪдϢд + IIC_WaitAck();//ȴEEPROM + IIC_Delay(200); + } + IIC_Stop();//ֹͣ +} + + +//EEPROM +//ڲҪ洢ַȡĵַ(Ϊ8ı)ȡ +//ֵ +//ܣȡEERPOMijַеݣַС +void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) +{ + IIC_Start();//Ϳź + IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + IIC_WaitAck();//ȴEEPROM + + IIC_SendByte(addr);//дҪȡݵַ + IIC_WaitAck();//ȴEEPROM + + IIC_Start();//Ϳź + IIC_SendByte(0xA1);//ѡEEPROMоƬȷģʽ + IIC_WaitAck();//ȴEEPROM + + while(num--) + { + *EEPROM_String++ = IIC_RecByte();//ҪдϢд + if(num) IIC_SendAck(0);//Ӧ + else IIC_SendAck(1);//Ӧ + } + + IIC_Stop();//ֹͣ +} \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/iic.h b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/iic.h new file mode 100644 index 0000000..f51a055 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/Driver/iic.h @@ -0,0 +1,23 @@ +# include "STC15F2K60S2.H" + + +void IIC_Start(void); +void IIC_Stop(void); +bit IIC_WaitAck(void); +void IIC_SendAck(bit ackbit); +void IIC_SendByte(unsigned char byt); +unsigned char IIC_RecByte(void); +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); +//函数名:写EEPROM函数 +//入口参数:需要写入的字符串,写入的地址(务必为8的倍数),写入数量 +//返回值:无 +//函数功能:向EERPOM的某个地址写入字符串中特定数量的字符。 +void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num); + + +//函数名:读EEPROM函数 +//入口参数:读到的数据需要存储的字符串,读取的地址(务必为8的倍数),读取的数量 +//返回值:无 +//函数功能:读取EERPOM的某个地址中的数据,并存放在字符串数组中。 +void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Init.lst b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Init.lst new file mode 100644 index 0000000..8980be5 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 02/09/2024 17:28:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Key.lst b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Key.lst new file mode 100644 index 0000000..f126e4a --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Key.lst @@ -0,0 +1,88 @@ +C51 COMPILER V9.59.0.0 KEY 02/09/2024 17:28:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include + 2 + 3 unsigned char Key_Read() + 4 { + 5 1 unsigned char temp = 0; + 6 1 ET0 = 0; + 7 1 // 1 + 8 1 P44 = 0; + 9 1 P42 = 1; + 10 1 P35 = 1; + 11 1 P34 = 1; + 12 1 if (P33 == 0) + 13 1 temp = 4; + 14 1 if (P32 == 0) + 15 1 temp = 5; + 16 1 if (P31 == 0) + 17 1 temp = 6; + 18 1 if (P30 == 0) + 19 1 temp = 7; + 20 1 // 2 + 21 1 P44 = 1; + 22 1 P42 = 0; + 23 1 P35 = 1; + 24 1 P34 = 1; + 25 1 if (P33 == 0) + 26 1 temp = 8; + 27 1 if (P32 == 0) + 28 1 temp = 9; + 29 1 if (P31 == 0) + 30 1 temp = 10; + 31 1 if (P30 == 0) + 32 1 temp = 11; + 33 1 // 3 + 34 1 P44 = 1; + 35 1 P42 = 1; + 36 1 P35 = 0; + 37 1 P34 = 1; + 38 1 if (P33 == 0) + 39 1 temp = 12; + 40 1 if (P32 == 0) + 41 1 temp = 13; + 42 1 if (P31 == 0) + 43 1 temp = 14; + 44 1 if (P30 == 0) + 45 1 temp = 15; + 46 1 // 4 + 47 1 P44 = 1; + 48 1 P42 = 1; + 49 1 P35 = 1; + 50 1 P34 = 0; + 51 1 if (P33 == 0) + 52 1 temp = 16; + 53 1 if (P32 == 0) + 54 1 temp = 17; + C51 COMPILER V9.59.0.0 KEY 02/09/2024 17:28:04 PAGE 2 + + 55 1 if (P31 == 0) + 56 1 temp = 18; + 57 1 if (P30 == 0) + 58 1 temp = 19; + 59 1 P3 = 0xff; + 60 1 ET0 = 1; + 61 1 return temp; + 62 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Led.lst b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Led.lst new file mode 100644 index 0000000..f284344 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Led.lst @@ -0,0 +1,82 @@ +C51 COMPILER V9.59.0.0 LED 02/09/2024 17:28:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include + 2 //ַ0-7Ƿʹ + 3 void Led_Disp(unsigned char addr,enable) + 4 { + 5 1 //ֵ֤Ϊı + 6 1 static unsigned char temp = 0x00; + 7 1 static unsigned char temp_old = 0xff; + 8 1 //ĵǰ״̬ + 9 1 if(enable) + 10 1 temp |= 0x01 << addr; + 11 1 else + 12 1 temp &= ~(0x01 << addr); + 13 1 //ǰ״̬֮ǰ״̬ͬвled + 14 1 if(temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 + 23 + 24 void Beep(unsigned char flag) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if(flag) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~0x40; + 32 1 if(temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 + 41 void Relay(unsigned char flag) + 42 { + 43 1 static unsigned char temp = 0x00; + 44 1 static unsigned char temp_old = 0xff; + 45 1 if(flag) + 46 1 temp |= 0x10; + 47 1 else + 48 1 temp &= ~0x10; + 49 1 if(temp != temp_old) + 50 1 { + 51 2 P0 = temp; + 52 2 P2 = P2 & 0x1f | 0xa0; + 53 2 P2 &= 0x1f; + 54 2 temp_old = temp; + C51 COMPILER V9.59.0.0 LED 02/09/2024 17:28:04 PAGE 2 + + 55 2 } + 56 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 129 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 6 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Seg.lst b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Seg.lst new file mode 100644 index 0000000..973ae19 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Seg.lst @@ -0,0 +1,46 @@ +C51 COMPILER V9.59.0.0 SEG 02/09/2024 17:28:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 F U + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0x8e, 0xc1}; + 5 // λѡ 2^0,2^1,2^2,2^3,2^4,2^52^6,2^7һ˸ + 6 unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 + 8 void Seg_Disp(unsigned char wela, dula, point) + 9 { + 10 1 // ֶ + 11 1 P0 = 0xff; + 12 1 P2 = P2 & 0x1f | 0xe0; + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 P0 = seg_dula[dula]; + 18 1 if (point) + 19 1 P0 &= 0x7f; + 20 1 P2 = P2 & 0x1f | 0xe0; + 21 1 P2 &= 0x1f; + 22 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 55 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 21 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Uart.lst b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Uart.lst new file mode 100644 index 0000000..5bd7842 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/Uart.lst @@ -0,0 +1,60 @@ +C51 COMPILER V9.59.0.0 UART 01/30/2024 15:23:39 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include + 2 + 3 /* 串口初始化函数 */ + 4 void UartInit(void) //9600bps@12.000MHz + 5 { + 6 1 SCON = 0x50; //8位数据,可变波特率 + 7 1 AUXR |= 0x01; //串口1选择定时器2为波特率发生器 + 8 1 AUXR |= 0x04; //定时器时钟1T模式 + 9 1 T2L = 0xC7; //设置定时初始值 + 10 1 T2H = 0xFE; //设置定时初始值 + 11 1 AUXR |= 0x10; //定时器2开始计时 + 12 1 ES = 1; + 13 1 EA = 1; + 14 1 } + 15 + 16 /* putchar重定向 */ + 17 extern char putchar(char ch) + 18 { + 19 1 SBUF= ch;//将dat数据赋给SBUF,将数据发送出去 + 20 1 while(TI == 0);//等待数据发送 + 21 1 TI = 0;//将发送标志位清零 + 22 1 return (ch); + 23 1 } + 24 void SendByte(unsigned char dat) + 25 { + 26 1 SBUF = dat; + 27 1 while (TI == 0) // 等待发送 + 28 1 ; + 29 1 TI = 0; // 将发送标志清零,准备下一次发送 + 30 1 } + 31 + 32 void Uart_Sent_String(unsigned char *dat) + 33 { + 34 1 while (*dat != "\0") + 35 1 SendByte(*dat++); + 36 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 82 ---- + CONSTANT SIZE = 2 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 3 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/ds1302.lst b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/ds1302.lst new file mode 100644 index 0000000..21771b4 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/ds1302.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 DS1302 01/30/2024 15:23:39 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 #include "ds1302.h" + 2 #include + 3 #include + 4 + 5 sbit SCK = P1 ^ 7; + 6 sbit SDA = P2 ^ 3; + 7 sbit RST = P1 ^ 3; + 8 + 9 // дֽ + 10 void Write_Ds1302(unsigned char temp) + 11 { + 12 1 unsigned char i; + 13 1 for (i = 0; i < 8; i++) + 14 1 { + 15 2 SCK = 0; + 16 2 SDA = temp & 0x01; + 17 2 temp >>= 1; // һλһλд + 18 2 SCK = 1; + 19 2 } + 20 1 } + 21 + 22 // DS1302Ĵд + 23 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 24 { + 25 1 RST = 0; + 26 1 _nop_(); + 27 1 SCK = 0; + 28 1 _nop_(); + 29 1 RST = 1; + 30 1 _nop_(); + 31 1 Write_Ds1302(address); + 32 1 Write_Ds1302(dat); + 33 1 RST = 0; + 34 1 } + 35 + 36 // DS1302Ĵ + 37 unsigned char Read_Ds1302_Byte(unsigned char address) + 38 { + 39 1 unsigned char i, temp = 0x00; + 40 1 RST = 0; + 41 1 _nop_(); + 42 1 SCK = 0; + 43 1 _nop_(); + 44 1 RST = 1; + 45 1 _nop_(); + 46 1 Write_Ds1302(address); + 47 1 for (i = 0; i < 8; i++) + 48 1 { + 49 2 SCK = 0; + 50 2 temp >>= 1; + 51 2 if (SDA) + 52 2 temp |= 0x80; + 53 2 SCK = 1; + 54 2 } + C51 COMPILER V9.59.0.0 DS1302 01/30/2024 15:23:39 PAGE 2 + + 55 1 RST = 0; + 56 1 _nop_(); + 57 1 SCK = 0; + 58 1 _nop_(); + 59 1 SCK = 1; + 60 1 _nop_(); + 61 1 SDA = 0; + 62 1 _nop_(); + 63 1 SDA = 1; + 64 1 _nop_(); + 65 1 return (temp); + 66 1 } + 67 + 68 void Set_Rtc(unsigned char *ucRtc) + 69 { + 70 1 unsigned char i; + 71 1 Write_Ds1302_Byte(0x8e, 0x00); + 72 1 for (i = 0; i < 3; i++) + 73 1 { + 74 2 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 75 2 } + 76 1 Write_Ds1302_Byte(0x8e, 0x80); + 77 1 } + 78 + 79 void Read_Rtc(unsigned char *ucRtc) + 80 { + 81 1 unsigned char i; + 82 1 for (i = 0; i < 3; i++) + 83 1 { + 84 2 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 85 2 } + 86 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/iic.lst b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/iic.lst new file mode 100644 index 0000000..b618894 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/iic.lst @@ -0,0 +1,226 @@ +C51 COMPILER V9.59.0.0 IIC 02/09/2024 17:28:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* + 2 ˵: IIC + 3 : Keil uVision 4.10 + 4 Ӳ: CT107Ƭۺʵѵƽ̨ 805112MHz + 5 : 2011-8-9 + 6 */ + 7 + 8 #include "iic.h" + 9 + 10 + 11 #include "intrins.h" + 12 + 13 #define DELAY_TIME 5 + 14 + 15 #define Photo_Res_Channel 0x41 + 16 #define Adj_Res_Channel 0x43 + 17 + 18 + 19 //Ŷ + 20 sbit SDA = P2^1; /* */ + 21 sbit SCL = P2^0; /* ʱ */ + 22 + 23 void IIC_Delay(unsigned char i) + 24 { + 25 1 do { + 26 2 _nop_(); + 27 2 } + 28 1 while(i--); + 29 1 } + 30 + 31 // + 32 void IIC_Start(void) + 33 { + 34 1 SDA = 1; + 35 1 SCL = 1; + 36 1 IIC_Delay(DELAY_TIME); + 37 1 SDA = 0; + 38 1 IIC_Delay(DELAY_TIME); + 39 1 SCL = 0; + 40 1 } + 41 + 42 //ֹͣ + 43 void IIC_Stop(void) + 44 { + 45 1 SDA = 0; + 46 1 SCL = 1; + 47 1 IIC_Delay(DELAY_TIME); + 48 1 SDA = 1; + 49 1 IIC_Delay(DELAY_TIME); + 50 1 } + 51 + 52 //Ӧ + 53 void IIC_SendAck(bit ackbit) + 54 { + C51 COMPILER V9.59.0.0 IIC 02/09/2024 17:28:04 PAGE 2 + + 55 1 SCL = 0; + 56 1 SDA = ackbit; // 0Ӧ1Ӧ + 57 1 IIC_Delay(DELAY_TIME); + 58 1 SCL = 1; + 59 1 IIC_Delay(DELAY_TIME); + 60 1 SCL = 0; + 61 1 SDA = 1; + 62 1 IIC_Delay(DELAY_TIME); + 63 1 } + 64 + 65 //ȴӦ + 66 bit IIC_WaitAck(void) + 67 { + 68 1 bit ackbit; + 69 1 + 70 1 SCL = 1; + 71 1 IIC_Delay(DELAY_TIME); + 72 1 ackbit = SDA; + 73 1 SCL = 0; + 74 1 IIC_Delay(DELAY_TIME); + 75 1 return ackbit; + 76 1 } + 77 + 78 //ͨI2C߷ + 79 void IIC_SendByte(unsigned char byt) + 80 { + 81 1 unsigned char i; + 82 1 + 83 1 for(i=0; i<8; i++) + 84 1 { + 85 2 SCL = 0; + 86 2 IIC_Delay(DELAY_TIME); + 87 2 if(byt & 0x80) SDA = 1; + 88 2 else SDA = 0; + 89 2 IIC_Delay(DELAY_TIME); + 90 2 SCL = 1; + 91 2 byt <<= 1; + 92 2 IIC_Delay(DELAY_TIME); + 93 2 } + 94 1 SCL = 0; + 95 1 } + 96 + 97 //I2CϽ + 98 unsigned char IIC_RecByte(void) + 99 { + 100 1 unsigned char i, da; + 101 1 for(i=0; i<8; i++) + 102 1 { + 103 2 SCL = 1; + 104 2 IIC_Delay(DELAY_TIME); + 105 2 da <<= 1; + 106 2 if(SDA) da |= 1; + 107 2 SCL = 0; + 108 2 IIC_Delay(DELAY_TIME); + 109 2 } + 110 1 return da; + 111 1 } + 112 + 113 + 114 + 115 + 116 + C51 COMPILER V9.59.0.0 IIC 02/09/2024 17:28:04 PAGE 3 + + 117 unsigned char Ad_Read(unsigned char addr) + 118 { + 119 1 unsigned char temp; + 120 1 IIC_Start(); + 121 1 IIC_SendByte(0x90); + 122 1 IIC_WaitAck(); + 123 1 IIC_SendByte(addr); + 124 1 IIC_WaitAck(); + 125 1 IIC_Start(); + 126 1 IIC_SendByte(0x91); + 127 1 IIC_WaitAck(); + 128 1 temp = IIC_RecByte(); + 129 1 IIC_SendAck(1); + 130 1 IIC_Stop(); + 131 1 return temp; + 132 1 } + 133 + 134 void Da_Write(unsigned char dat) + 135 { + 136 1 IIC_Start(); + 137 1 IIC_SendByte(0x90); + 138 1 IIC_WaitAck(); + 139 1 IIC_SendByte(0x41); + 140 1 IIC_WaitAck(); + 141 1 IIC_SendByte(dat); + 142 1 IIC_WaitAck(); + 143 1 IIC_Stop(); + 144 1 } + 145 + 146 + 147 + 148 //дEEPROM + 149 //ڲҪдַдĵַ(Ϊ8ı)д + 150 //ֵ + 151 //ܣEERPOMijַдַضַ + 152 void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) + 153 { + 154 1 IIC_Start();//Ϳź + 155 1 IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + 156 1 IIC_WaitAck();//ȴEEPROM + 157 1 + 158 1 IIC_SendByte(addr);//дҪ洢ݵַ + 159 1 IIC_WaitAck();//ȴEEPROM + 160 1 + 161 1 while(num--) + 162 1 { + 163 2 IIC_SendByte(*EEPROM_String++);//ҪдϢд + 164 2 IIC_WaitAck();//ȴEEPROM + 165 2 IIC_Delay(200); + 166 2 } + 167 1 IIC_Stop();//ֹͣ + 168 1 } + 169 + 170 + 171 //EEPROM + 172 //ڲҪ洢ַȡĵַ(Ϊ8ı)ȡ + 173 //ֵ + 174 //ܣȡEERPOMijַеݣַС + 175 void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) + 176 { + 177 1 IIC_Start();//Ϳź + 178 1 IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + C51 COMPILER V9.59.0.0 IIC 02/09/2024 17:28:04 PAGE 4 + + 179 1 IIC_WaitAck();//ȴEEPROM + 180 1 + 181 1 IIC_SendByte(addr);//дҪȡݵַ + 182 1 IIC_WaitAck();//ȴEEPROM + 183 1 + 184 1 IIC_Start();//Ϳź + 185 1 IIC_SendByte(0xA1);//ѡEEPROMоƬȷģʽ + 186 1 IIC_WaitAck();//ȴEEPROM + 187 1 + 188 1 while(num--) + 189 1 { + 190 2 *EEPROM_String++ = IIC_RecByte();//ҪдϢд + 191 2 if(num) IIC_SendAck(0);//Ӧ + 192 2 else IIC_SendAck(1);//Ӧ + 193 2 } + 194 1 + 195 1 IIC_Stop();//ֹͣ + 196 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 385 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- 2 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/main.lst b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/main.lst new file mode 100644 index 0000000..ab84923 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/main.lst @@ -0,0 +1,214 @@ +C51 COMPILER V9.59.0.0 MAIN 02/09/2024 17:28:03 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* */ + 3 uchar Key_Slow_Down; // רñ + 4 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾݴ + 5 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Сݴ + 6 uchar Seg_Pos; // ɨרñ + 7 uint Seg_Slow_Down; // ܼרñ + 8 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Ledʾݴ + 9 uchar Uart_Slow_Down; // ڼרñ + 10 uchar Seg_show_mode; // 0ѹ 1Ƶ + 11 uint voltage_value_100x; + 12 uchar DAC_value = 102; // 2*51 + 13 uint frequency_value; + 14 uint time_1s; + 15 bit output_mode; // 0̶DAC=2, 1DAC=RB2 + 16 bit LED_mode; // 0 1رչ + 17 bit Seg_mode; // 0 1ر + 18 /* ̴ */ + 19 void Key_Proc() + 20 { + 21 1 static uchar Key_Val, Key_Down, Key_Old, Key_Up; // רñ + 22 1 if (Key_Slow_Down) + 23 1 return; + 24 1 Key_Slow_Down = 1; // ̼ٳ + 25 1 + 26 1 Key_Val = Key_Read(); // ʵʱȡֵ + 27 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); // ׽½ + 28 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); // ׽Ͻ + 29 1 Key_Old = Key_Val; // ɨ + 30 1 switch (Key_Down) + 31 1 { + 32 2 case 4: + 33 2 Seg_show_mode = (++Seg_show_mode) % 2; + 34 2 break; + 35 2 case 5: + 36 2 output_mode ^= 1; + 37 2 break; + 38 2 case 6: + 39 2 LED_mode ^= 1; + 40 2 break; + 41 2 case 7: + 42 2 Seg_mode ^= 1; + 43 2 break; + 44 2 } + 45 1 } + 46 /* Ϣ */ + 47 void Seg_Proc() + 48 { + 49 1 if (Seg_Slow_Down) + 50 1 return; + 51 1 Seg_Slow_Down = 1; // ܼٳ + 52 1 + 53 1 voltage_value_100x = Ad_Read(0x43); + 54 1 if (!output_mode) + C51 COMPILER V9.59.0.0 MAIN 02/09/2024 17:28:03 PAGE 2 + + 55 1 DAC_value = voltage_value_100x; + 56 1 else + 57 1 DAC_value = 102; + 58 1 if (!output_mode) + 59 1 Da_Write(DAC_value); + 60 1 else + 61 1 Da_Write(DAC_value); + 62 1 voltage_value_100x = voltage_value_100x * 100 / 51; + 63 1 if (!Seg_mode) + 64 1 { + 65 2 switch (Seg_show_mode) + 66 2 { + 67 3 case 0: + 68 3 /* ѹ */ + 69 3 Seg_Buf[0] = 11; // U + 70 3 Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 71 3 Seg_Buf[5] = voltage_value_100x / 100; + 72 3 Seg_Buf[6] = voltage_value_100x / 10 % 10; + 73 3 Seg_Buf[7] = voltage_value_100x % 10; + 74 3 Seg_Point[5] = 1; + 75 3 break; + 76 3 case 1: + 77 3 /* Ƶʲ */ + 78 3 Seg_Buf[0] = 12; // F + 79 3 Seg_Buf[1] = 10; + 80 3 Seg_Buf[2] = (frequency_value / 100000 == 0) ? 10 : frequency_value / 100000; + 81 3 Seg_Buf[3] = ((frequency_value / 10000 % 10 == 0) && (Seg_Buf[2] == 10)) ? 10 : frequency_value / 10000 + - % 10; + 82 3 Seg_Buf[4] = ((frequency_value / 1000 % 10 == 0) && (Seg_Buf[3] == 10)) ? 10 : frequency_value / 1000 % + - 10; + 83 3 Seg_Buf[5] = ((frequency_value / 100 % 10 == 0) && (Seg_Buf[4] == 10)) ? 10 : frequency_value / 100 % 1 + -0; + 84 3 Seg_Buf[6] = ((frequency_value / 10 % 10 == 0) && (Seg_Buf[5] == 10)) ? 10 : frequency_value / 10 % 10; + 85 3 Seg_Buf[7] = frequency_value % 10; + 86 3 Seg_Point[5] = 0; + 87 3 break; + 88 3 } + 89 2 } + 90 1 else + 91 1 { + 92 2 uchar i; + 93 2 for (i = 0; i < 8; i++) + 94 2 { + 95 3 Seg_Buf[i] = 10; + 96 3 Seg_Point[i] = 0; + 97 3 } + 98 2 } + 99 1 } + 100 + 101 /* ʾ */ + 102 void Led_Proc() + 103 { + 104 1 if (!LED_mode) + 105 1 { + 106 2 ucLed[0] = (Seg_show_mode == 0); + 107 2 ucLed[1] = (Seg_show_mode == 1); + 108 2 ucLed[2] = ((voltage_value_100x < 250 && voltage_value_100x >= 150) || + 109 2 (voltage_value_100x >= 350)); + 110 2 ucLed[3] = ((frequency_value < 5000 && frequency_value >= 1000) || + 111 2 frequency_value >= 10000); + 112 2 ucLed[4] = (output_mode); + 113 2 } + C51 COMPILER V9.59.0.0 MAIN 02/09/2024 17:28:03 PAGE 3 + + 114 1 else + 115 1 { + 116 2 uchar i; + 117 2 for (i = 0; i < 8; i++) + 118 2 { + 119 3 ucLed[i] = 0; + 120 3 } + 121 2 } + 122 1 } + 123 + 124 // + 125 void Timer0Init(void) // 0΢@12.000MHz + 126 { + 127 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 128 1 TMOD &= 0xF0; // öʱģʽ + 129 1 TMOD |= 0x05; + 130 1 TL0 = 0x00; // öʱֵ + 131 1 TH0 = 0x00; // öʱֵ + 132 1 TF0 = 0; // TF0־ + 133 1 TR0 = 1; // ʱ0ʼʱ + 134 1 } + 135 // ʱ + 136 void Timer1Init(void) // 1@12.000MHz + 137 { + 138 1 AUXR &= 0xBF; // ʱʱ12Tģʽ + 139 1 TMOD &= 0x0F; // öʱģʽ + 140 1 TL1 = 0x18; // öʱֵ + 141 1 TH1 = 0xFC; // öʱֵ + 142 1 TF1 = 0; // TF1־ + 143 1 TR1 = 1; // ʱ1ʼʱ + 144 1 ET1 = 1; // ʱ1ж + 145 1 EA = 1; // ж + 146 1 } + 147 + 148 /* ʱ1жϷ */ + 149 void Timer1Server() interrupt 3 + 150 { + 151 1 if (++Key_Slow_Down == 10) + 152 1 Key_Slow_Down = 0; // ̼ר + 153 1 if (++Seg_Slow_Down == 200) + 154 1 Seg_Slow_Down = 0; // ܼר + 155 1 if (++Seg_Pos == 8) + 156 1 Seg_Pos = 0; // ʾר + 157 1 if (++time_1s == 1000) + 158 1 { + 159 2 time_1s = 0; + 160 2 frequency_value = TH0 << 8 | TL0; + 161 2 TH0 = TL0 = 0; + 162 2 TF0 = 0; + 163 2 } + 164 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 165 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 166 1 } + 167 + 168 /* Main */ + 169 void main() + 170 { + 171 1 System_Init(); + 172 1 Timer0Init(); + 173 1 Timer1Init(); + 174 1 + 175 1 while (1) + C51 COMPILER V9.59.0.0 MAIN 02/09/2024 17:28:03 PAGE 4 + + 176 1 { + 177 2 Key_Proc(); + 178 2 Seg_Proc(); + 179 2 Led_Proc(); + 180 2 } + 181 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 840 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 41 2 + IDATA SIZE = ---- ---- + BIT SIZE = 3 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/onewire.lst b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/onewire.lst new file mode 100644 index 0000000..87e8408 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/onewire.lst @@ -0,0 +1,120 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 01/30/2024 15:23:39 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 #include "onewire.h" + 2 #include "reg52.h" + 3 + 4 sbit DQ = P1 ^ 4; + 5 + 6 // ڲʱ + 7 void Delay_OneWire(unsigned int t) + 8 { + 9 1 t *= 12; + 10 1 while (t--) + 11 1 ; + 12 1 } + 13 + 14 // д + 15 void Write_DS18B20(unsigned char dat) + 16 { + 17 1 unsigned char i; + 18 1 for (i = 0; i < 8; i++) + 19 1 { + 20 2 DQ = 0; + 21 2 DQ = dat & 0x01; + 22 2 Delay_OneWire(5); + 23 2 DQ = 1; + 24 2 dat >>= 1; // һһд + 25 2 } + 26 1 Delay_OneWire(5); + 27 1 } + 28 + 29 // ߶ + 30 unsigned char Read_DS18B20(void) + 31 { + 32 1 unsigned char i; + 33 1 unsigned char dat; + 34 1 + 35 1 for (i = 0; i < 8; i++) + 36 1 { + 37 2 DQ = 0; + 38 2 dat >>= 1; + 39 2 DQ = 1; + 40 2 if (DQ) + 41 2 { + 42 3 dat |= 0x80; // һһȡ + 43 3 } + 44 2 Delay_OneWire(5); + 45 2 } + 46 1 return dat; + 47 1 } + 48 + 49 // DS18B20ʼ + 50 bit init_ds18b20(void) + 51 { + 52 1 bit initflag = 0; + 53 1 + 54 1 DQ = 1; + C51 COMPILER V9.59.0.0 ONEWIRE 01/30/2024 15:23:39 PAGE 2 + + 55 1 Delay_OneWire(12); + 56 1 DQ = 0; + 57 1 Delay_OneWire(80); + 58 1 DQ = 1; + 59 1 Delay_OneWire(10); + 60 1 initflag = DQ; + 61 1 Delay_OneWire(5); + 62 1 + 63 1 return initflag; + 64 1 } + 65 + 66 void start_Convert() + 67 { + 68 1 init_ds18b20(); + 69 1 Write_DS18B20(0xcc); // ROM + 70 1 Write_DS18B20(0x44); // ¶ת + 71 1 } + 72 float read_temperture() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // ROM + 77 1 Write_DS18B20(0xbe); // ȡ¶ֵ + 78 1 low = Read_DS18B20(); // λ + 79 1 high = Read_DS18B20(); // λ + 80 1 return ((high << 8) | low) / 16.0; + 81 1 } + 82 float rd_temperature() + 83 { + 84 1 unsigned char low, high; + 85 1 init_ds18b20(); // ʼ + 86 1 Write_DS18B20(0xcc); // ROM + 87 1 Write_DS18B20(0x44); // ¶ת + 88 1 init_ds18b20(); // ʼ + 89 1 Write_DS18B20(0xcc); // ROM + 90 1 Write_DS18B20(0xbe); // ȡ¶ + 91 1 low = Read_DS18B20(); // λ + 92 1 high = Read_DS18B20(); // λ + 93 1 return ((high << 8) | low) / 16.0; + 94 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 224 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/ultrasound.lst b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/ultrasound.lst new file mode 100644 index 0000000..056d145 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/ultrasound.lst @@ -0,0 +1,75 @@ +C51 COMPILER V9.59.0.0 ULTRASOUND 01/30/2024 15:23:40 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASOUND +OBJECT MODULE PLACED IN .\Objects\ultrasound.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ultrasound.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\ultrasound.lst) TABS(2) OBJECT(.\Objects\ultrasound.obj) + +line level source + + 1 #include + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1^0; + 5 sbit Rx = P1^1; + 6 + 7 void Delay12us() //@12.000MHz + 8 { + 9 1 unsigned char i; + 10 1 + 11 1 _nop_(); + 12 1 _nop_(); + 13 1 i = 38; + 14 1 while (--i); + 15 1 } + 16 + 17 void Ut_Wave_Init() //��������ʼ������ ����8��40Mhz�ķ��� + -ź� + 18 { + 19 1 unsigned char i; + 20 1 for(i=0; i<8; i++) + 21 1 { + 22 2 Tx = 1; + 23 2 Delay12us(); + 24 2 Tx = 0; + 25 2 Delay12us(); + 26 2 } + 27 1 } + 28 + 29 unsigned char Ut_Wave_Data() //超声波距离读取函数 + 30 { + 31 1 unsigned int time;//时间储存变量 + 32 1 CMOD = 0x00;//配置PCA工作模式 + 33 1 CH = CL = 0;//复位计数值 等待超声波信号发出 + 34 1 Ut_Wave_Init();//发送超声波信号 + 35 1 CR = 1;//开始计时 + 36 1 while((Rx == 1) && (CF == 0));//等待接受返回信号或者定时器溢出 + 37 1 CR = 0;//停止计时 + 38 1 if(CF == 0) //定时器没有溢出 + 39 1 { + 40 2 time = CH << 8 | CL;//读取当前时间 + 41 2 return (time * 0.017);//返回距离值 + 42 2 } + 43 1 else + 44 1 { + 45 2 CF = 0;//清除溢出标志位 + 46 2 return 0; + 47 2 } + 48 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 89 ---- + CONSTANT SIZE = ---- ---- + C51 COMPILER V9.59.0.0 ULTRASOUND 01/30/2024 15:23:40 PAGE 2 + + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/zuolan.m51 b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/zuolan.m51 new file mode 100644 index 0000000..07d2832 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Listings/zuolan.m51 @@ -0,0 +1,901 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\iic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\iic.obj (IIC) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?IMUL) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?SLDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?ULDIV) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0015H UNIT ?DT?SEG + DATA 001DH 0001H UNIT _DATA_GROUP_ + 001EH 0002H *** GAP *** + BIT 0020H.0 0000H.3 UNIT ?BI?MAIN + BIT 0020H.3 0000H.1 UNIT _BIT_GROUP_ + 0020H.4 0000H.4 *** GAP *** + DATA 0021H 0029H UNIT ?DT?MAIN + DATA 004AH 0006H UNIT ?DT?LED + DATA 0050H 0005H UNIT ?DT?_EEPROM_WRITE?IIC + DATA 0055H 0005H UNIT ?DT?_EEPROM_READ?IIC + IDATA 005AH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0017H UNIT ?PR?IIC_SENDACK?IIC + 001AH 0001H *** GAP *** + CODE 001BH 0003H ABSOLUTE + CODE 001EH 0184H UNIT ?PR?SEG_PROC?MAIN + CODE 01A2H 0160H UNIT ?C?LIB_CODE + CODE 0302H 00ACH UNIT ?PR?TIMER1SERVER?MAIN + CODE 03AEH 0093H UNIT ?PR?LED_PROC?MAIN + CODE 0441H 008CH UNIT ?C_C51STARTUP + CODE 04CDH 007AH UNIT ?PR?KEY_READ?KEY + CODE 0547H 004DH UNIT ?C_INITSEG + CODE 0594H 004DH UNIT ?PR?_EEPROM_READ?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 2 + + + CODE 05E1H 0049H UNIT ?PR?KEY_PROC?MAIN + CODE 062AH 0044H UNIT ?C?LDIV + CODE 066EH 003DH UNIT ?PR?_EEPROM_WRITE?IIC + CODE 06ABH 003CH UNIT ?PR?_IIC_SENDBYTE?IIC + CODE 06E7H 003BH UNIT ?PR?_LED_DISP?LED + CODE 0722H 0037H UNIT ?PR?_SEG_DISP?SEG + CODE 0759H 0026H UNIT ?PR?IIC_RECBYTE?IIC + CODE 077FH 0026H UNIT ?PR?_AD_READ?IIC + CODE 07A5H 0023H UNIT ?PR?_BEEP?LED + CODE 07C8H 0023H UNIT ?PR?_RELAY?LED + CODE 07EBH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0808H 001BH UNIT ?PR?IIC_WAITACK?IIC + CODE 0823H 0016H UNIT ?PR?_DA_WRITE?IIC + CODE 0839H 0015H UNIT ?PR?TIMER1INIT?MAIN + CODE 084EH 0014H UNIT ?PR?MAIN?MAIN + CODE 0862H 0013H UNIT ?PR?TIMER0INIT?MAIN + CODE 0875H 000FH UNIT ?PR?IIC_START?IIC + CODE 0884H 000CH UNIT ?PR?_IIC_DELAY?IIC + CODE 0890H 000CH UNIT ?PR?IIC_STOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------ +?PR?TIMER1SERVER?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0INIT?MAIN + +--> ?PR?TIMER1INIT?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN ----- ----- 001DH 0001H + +--> ?PR?_AD_READ?IIC + +--> ?PR?_DA_WRITE?IIC + +?PR?_AD_READ?IIC ----- ----- ----- ----- + +--> ?PR?IIC_WAITACK?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?IIC_START?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 3 + + + +--> ?PR?IIC_RECBYTE?IIC + +--> ?PR?IIC_SENDACK?IIC + +--> ?PR?IIC_STOP?IIC + +?PR?IIC_WAITACK?IIC 0020H.3 0000H.1 ----- ----- + +--> ?PR?IIC_START?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_START?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?_IIC_SENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?IIC_START?IIC + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_RECBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_SENDACK?IIC 0020H.3 0000H.1 ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_STOP?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?_DA_WRITE?IIC ----- ----- ----- ----- + +--> ?PR?IIC_WAITACK?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?IIC_STOP?IIC + +?PR?LED_PROC?MAIN ----- ----- 001DH 0001H + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:03AEH PUBLIC Led_Proc + D:0025H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:001EH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:002DH PUBLIC Seg_Buf + C:05E1H PUBLIC Key_Proc + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 4 + + + D:0035H PUBLIC Uart_Slow_Down + D:0036H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:084EH PUBLIC main + B:0020H.0 PUBLIC Seg_mode + D:0038H PUBLIC Key_Slow_Down + C:0302H PUBLIC Timer1Server + D:0039H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:003AH PUBLIC time_1s + B:0020H.1 PUBLIC output_mode + D:008EH PUBLIC AUXR + D:003CH PUBLIC DAC_value + B:0088H.5 PUBLIC TF0 + B:00A8H.3 PUBLIC ET1 + C:0862H PUBLIC Timer0Init + B:0088H.7 PUBLIC TF1 + C:0839H PUBLIC Timer1Init + D:003DH PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008DH PUBLIC TH1 + D:008AH PUBLIC TL0 + D:008BH PUBLIC TL1 + B:0088H.4 PUBLIC TR0 + B:0088H.6 PUBLIC TR1 + D:003EH PUBLIC frequency_value + B:0020H.2 PUBLIC LED_mode + D:0040H PUBLIC voltage_value_100x + D:0042H PUBLIC ucLed + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Old + D:0024H SYMBOL Key_Up + ------- ENDDO + C:05E1H LINE# 19 + C:05E1H LINE# 20 + C:05E1H LINE# 22 + C:05E5H LINE# 24 + C:05E8H LINE# 26 + C:05EDH LINE# 27 + C:05F6H LINE# 28 + C:05FCH LINE# 29 + C:05FFH LINE# 30 + C:060FH LINE# 31 + C:060FH LINE# 32 + C:060FH LINE# 33 + C:0617H LINE# 34 + C:0618H LINE# 35 + C:0618H LINE# 36 + C:061DH LINE# 37 + C:061EH LINE# 38 + C:061EH LINE# 39 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 5 + + + C:0623H LINE# 40 + C:0624H LINE# 41 + C:0624H LINE# 42 + C:0629H LINE# 43 + C:0629H LINE# 44 + C:0629H LINE# 45 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:001DH SYMBOL i + ------- ENDDO + C:001EH LINE# 47 + C:001EH LINE# 48 + C:001EH LINE# 49 + C:0027H LINE# 51 + C:002CH LINE# 53 + C:0036H LINE# 54 + C:0039H LINE# 55 + C:003EH LINE# 57 + C:0041H LINE# 58 + C:0041H LINE# 59 + C:0041H LINE# 61 + C:0046H LINE# 62 + C:005AH LINE# 63 + C:0060H LINE# 64 + C:0060H LINE# 65 + C:006BH LINE# 66 + C:006BH LINE# 67 + C:006BH LINE# 69 + C:006EH LINE# 70 + C:007AH LINE# 71 + C:0087H LINE# 72 + C:009BH LINE# 73 + C:00A8H LINE# 74 + C:00ABH LINE# 75 + C:00ACH LINE# 76 + C:00ACH LINE# 78 + C:00AFH LINE# 79 + C:00B2H LINE# 80 + C:00E0H LINE# 81 + C:0104H LINE# 82 + C:0128H LINE# 83 + C:014CH LINE# 84 + C:0170H LINE# 85 + C:017DH LINE# 86 + C:0180H LINE# 87 + C:0181H LINE# 88 + C:0181H LINE# 89 + C:0181H LINE# 91 + C:0181H LINE# 93 + C:018FH LINE# 94 + C:018FH LINE# 95 + C:0196H LINE# 96 + C:019DH LINE# 97 + C:01A1H LINE# 98 + C:01A1H LINE# 99 + ------- ENDPROC SEG_PROC + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 6 + + + ------- PROC LED_PROC + ------- DO + D:001DH SYMBOL i + ------- ENDDO + C:03AEH LINE# 102 + C:03AEH LINE# 103 + C:03AEH LINE# 104 + C:03B1H LINE# 105 + C:03B1H LINE# 106 + C:03C0H LINE# 107 + C:03CEH LINE# 108 + C:03F7H LINE# 110 + C:0420H LINE# 112 + C:0426H LINE# 113 + C:0427H LINE# 115 + C:0427H LINE# 117 + C:0435H LINE# 118 + C:0435H LINE# 119 + C:043CH LINE# 120 + C:0440H LINE# 121 + C:0440H LINE# 122 + ------- ENDPROC LED_PROC + ------- PROC TIMER0INIT + C:0862H LINE# 125 + C:0862H LINE# 126 + C:0862H LINE# 127 + C:0865H LINE# 128 + C:0868H LINE# 129 + C:086BH LINE# 130 + C:086EH LINE# 131 + C:0870H LINE# 132 + C:0872H LINE# 133 + C:0874H LINE# 134 + ------- ENDPROC TIMER0INIT + ------- PROC TIMER1INIT + C:0839H LINE# 136 + C:0839H LINE# 137 + C:0839H LINE# 138 + C:083CH LINE# 139 + C:083FH LINE# 140 + C:0842H LINE# 141 + C:0845H LINE# 142 + C:0847H LINE# 143 + C:0849H LINE# 144 + C:084BH LINE# 145 + C:084DH LINE# 146 + ------- ENDPROC TIMER1INIT + ------- PROC TIMER1SERVER + C:0302H LINE# 149 + C:031FH LINE# 151 + C:0327H LINE# 152 + C:0329H LINE# 153 + C:0337H LINE# 154 + C:033BH LINE# 155 + C:0343H LINE# 156 + C:0345H LINE# 157 + C:0356H LINE# 158 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 7 + + + C:0356H LINE# 159 + C:035CH LINE# 160 + C:0366H LINE# 161 + C:036CH LINE# 162 + C:036EH LINE# 163 + C:036EH LINE# 164 + C:0385H LINE# 165 + C:0393H LINE# 166 + ------- ENDPROC TIMER1SERVER + ------- PROC MAIN + C:084EH LINE# 169 + C:084EH LINE# 170 + C:084EH LINE# 171 + C:0851H LINE# 172 + C:0854H LINE# 173 + C:0857H LINE# 175 + C:0857H LINE# 176 + C:0857H LINE# 177 + C:085AH LINE# 178 + C:085DH LINE# 179 + C:0860H LINE# 180 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:07C8H PUBLIC _Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:06E7H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:07A5H PUBLIC _Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0004H SYMBOL enable + ------- DO + D:004AH SYMBOL temp + D:004BH SYMBOL temp_old + ------- ENDDO + C:06E7H LINE# 3 + C:06E7H LINE# 4 + C:06E7H LINE# 9 + C:06EBH LINE# 10 + C:06FAH LINE# 12 + C:0708H LINE# 14 + C:070EH LINE# 15 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 8 + + + C:070EH LINE# 16 + C:0713H LINE# 17 + C:071BH LINE# 18 + C:071EH LINE# 19 + C:0721H LINE# 20 + C:0721H LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC _BEEP + D:0007H SYMBOL flag + ------- DO + D:004CH SYMBOL temp + D:004DH SYMBOL temp_old + ------- ENDDO + C:07A5H LINE# 24 + C:07A5H LINE# 25 + C:07A5H LINE# 28 + C:07A8H LINE# 29 + C:07ADH LINE# 31 + C:07B0H LINE# 32 + C:07B6H LINE# 33 + C:07B6H LINE# 34 + C:07B9H LINE# 35 + C:07C1H LINE# 36 + C:07C4H LINE# 37 + C:07C7H LINE# 38 + C:07C7H LINE# 39 + ------- ENDPROC _BEEP + ------- PROC _RELAY + D:0007H SYMBOL flag + ------- DO + D:004EH SYMBOL temp + D:004FH SYMBOL temp_old + ------- ENDDO + C:07C8H LINE# 41 + C:07C8H LINE# 42 + C:07C8H LINE# 45 + C:07CBH LINE# 46 + C:07D0H LINE# 48 + C:07D3H LINE# 49 + C:07D9H LINE# 50 + C:07D9H LINE# 51 + C:07DCH LINE# 52 + C:07E4H LINE# 53 + C:07E7H LINE# 54 + C:07EAH LINE# 55 + C:07EAH LINE# 56 + ------- ENDPROC _RELAY + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 9 + + + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0722H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0015H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0004H SYMBOL dula + D:0002H SYMBOL point + C:0722H LINE# 8 + C:0722H LINE# 9 + C:0722H LINE# 11 + C:0725H LINE# 12 + C:072DH LINE# 13 + C:0734H LINE# 14 + C:073CH LINE# 15 + C:073FH LINE# 17 + C:0746H LINE# 18 + C:074AH LINE# 19 + C:074DH LINE# 20 + C:0755H LINE# 21 + C:0758H LINE# 22 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:04CDH PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 10 + + + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:04CDH LINE# 3 + C:04CDH LINE# 4 + C:04CDH LINE# 5 + C:04CFH LINE# 6 + C:04D1H LINE# 8 + C:04D3H LINE# 9 + C:04D5H LINE# 10 + C:04D7H LINE# 11 + C:04D9H LINE# 12 + C:04DCH LINE# 13 + C:04DEH LINE# 14 + C:04E1H LINE# 15 + C:04E3H LINE# 16 + C:04E6H LINE# 17 + C:04E8H LINE# 18 + C:04EBH LINE# 19 + C:04EDH LINE# 21 + C:04EFH LINE# 22 + C:04F1H LINE# 23 + C:04F3H LINE# 24 + C:04F5H LINE# 25 + C:04F8H LINE# 26 + C:04FAH LINE# 27 + C:04FDH LINE# 28 + C:04FFH LINE# 29 + C:0502H LINE# 30 + C:0504H LINE# 31 + C:0507H LINE# 32 + C:0509H LINE# 34 + C:050BH LINE# 35 + C:050DH LINE# 36 + C:050FH LINE# 37 + C:0511H LINE# 38 + C:0514H LINE# 39 + C:0516H LINE# 40 + C:0519H LINE# 41 + C:051BH LINE# 42 + C:051EH LINE# 43 + C:0520H LINE# 44 + C:0523H LINE# 45 + C:0525H LINE# 47 + C:0527H LINE# 48 + C:0529H LINE# 49 + C:052BH LINE# 50 + C:052DH LINE# 51 + C:0530H LINE# 52 + C:0532H LINE# 53 + C:0535H LINE# 54 + C:0537H LINE# 55 + C:053AH LINE# 56 + C:053CH LINE# 57 + C:053FH LINE# 58 + C:0541H LINE# 59 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 11 + + + C:0544H LINE# 60 + C:0546H LINE# 61 + C:0546H LINE# 62 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:07EBH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:07EBH LINE# 3 + C:07EBH LINE# 4 + C:07EBH LINE# 5 + C:07EEH LINE# 6 + C:07F6H LINE# 7 + C:07F9H LINE# 9 + C:07FCH LINE# 10 + C:0804H LINE# 11 + C:0807H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:077FH PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0823H PUBLIC _Da_Write + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + C:0888H PUBLIC _IIC_Delay + C:0594H PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:066EH PUBLIC _EEPROM_Write + C:0875H PUBLIC IIC_Start + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 12 + + + C:0003H PUBLIC IIC_SendAck + B:00A0H.1 PUBLIC SDA + C:06B2H PUBLIC _IIC_SendByte + C:0812H PUBLIC IIC_WaitAck + C:0890H PUBLIC IIC_Stop + B:00A0H.0 PUBLIC SCL + C:0759H PUBLIC IIC_RecByte + D:00D0H PUBLIC PSW + C:0884H SYMBOL L?0035 + ------- PROC L?0034 + ------- ENDPROC L?0034 + C:0884H SYMBOL L?0035 + ------- PROC _IIC_DELAY + D:0007H SYMBOL i + C:0888H LINE# 23 + C:0888H LINE# 24 + C:0888H LINE# 25 + C:0888H LINE# 26 + C:0889H LINE# 27 + C:0889H LINE# 28 + C:088FH LINE# 29 + ------- ENDPROC _IIC_DELAY + ------- PROC IIC_START + C:0875H LINE# 32 + C:0875H LINE# 33 + C:0875H LINE# 34 + C:0877H LINE# 35 + C:0877H LINE# 36 + C:087AH LINE# 37 + C:087CH LINE# 38 + C:0881H LINE# 39 + C:0883H LINE# 40 + ------- ENDPROC IIC_START + ------- PROC IIC_STOP + C:0890H LINE# 43 + C:0890H LINE# 44 + C:0890H LINE# 45 + C:0892H LINE# 46 + C:0892H LINE# 47 + C:0895H LINE# 48 + C:0897H LINE# 49 + ------- ENDPROC IIC_STOP + ------- PROC IIC_SENDACK + B:0020H.3 SYMBOL ackbit + C:0003H LINE# 53 + C:0003H LINE# 54 + C:0003H LINE# 55 + C:0005H LINE# 56 + C:0009H LINE# 57 + C:000EH LINE# 58 + C:000EH LINE# 59 + C:0011H LINE# 60 + C:0013H LINE# 61 + C:0015H LINE# 62 + ------- ENDPROC IIC_SENDACK + ------- PROC L?0033 + ------- ENDPROC L?0033 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 13 + + + ------- PROC IIC_WAITACK + ------- DO + B:0020H.3 SYMBOL ackbit + ------- ENDDO + C:0812H LINE# 66 + C:0812H LINE# 67 + C:0812H LINE# 70 + C:0812H LINE# 71 + C:0815H LINE# 72 + C:0819H LINE# 73 + C:081BH LINE# 74 + C:0820H LINE# 75 + C:0822H LINE# 76 + ------- ENDPROC IIC_WAITACK + ------- PROC L?0036 + ------- ENDPROC L?0036 + ------- PROC _IIC_SENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:06B2H LINE# 79 + C:06B4H LINE# 80 + C:06B4H LINE# 83 + C:06C0H LINE# 84 + C:06C0H LINE# 85 + C:06C2H LINE# 86 + C:06C7H LINE# 87 + C:06CFH LINE# 88 + C:06D1H LINE# 89 + C:06D6H LINE# 90 + C:06D8H LINE# 91 + C:06DCH LINE# 92 + C:06E1H LINE# 93 + C:06E4H LINE# 94 + C:06E6H LINE# 95 + ------- ENDPROC _IIC_SENDBYTE + ------- PROC IIC_RECBYTE + ------- DO + D:0004H SYMBOL i + D:0005H SYMBOL da + ------- ENDDO + C:0759H LINE# 98 + C:0759H LINE# 99 + C:0759H LINE# 101 + C:0765H LINE# 102 + C:0765H LINE# 103 + C:0765H LINE# 104 + C:0768H LINE# 105 + C:076CH LINE# 106 + C:0772H LINE# 107 + C:0774H LINE# 108 + C:0779H LINE# 109 + C:077CH LINE# 110 + C:077EH LINE# 111 + ------- ENDPROC IIC_RECBYTE + ------- PROC _AD_READ + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 14 + + + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:077FH LINE# 117 + C:077FH LINE# 118 + C:077FH LINE# 120 + C:077FH LINE# 121 + C:077FH LINE# 122 + C:0782H LINE# 123 + C:0787H LINE# 124 + C:078AH LINE# 125 + C:078DH LINE# 126 + C:0792H LINE# 127 + C:0795H LINE# 128 + C:079AH LINE# 129 + C:079FH LINE# 130 + C:07A2H LINE# 131 + C:07A4H LINE# 132 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:0823H LINE# 134 + C:0823H LINE# 135 + C:0823H LINE# 136 + C:0823H LINE# 137 + C:0823H LINE# 138 + C:0826H LINE# 139 + C:082BH LINE# 140 + C:082EH LINE# 141 + C:0833H LINE# 142 + C:0836H LINE# 143 + ------- ENDPROC _DA_WRITE + ------- PROC _EEPROM_WRITE + D:0050H SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0054H SYMBOL num + C:066EH LINE# 152 + C:0674H LINE# 153 + C:0674H LINE# 154 + C:0674H LINE# 155 + C:0677H LINE# 156 + C:067AH LINE# 158 + C:067FH LINE# 159 + C:0682H LINE# 161 + C:0689H LINE# 162 + C:0689H LINE# 163 + C:069EH LINE# 164 + C:06A1H LINE# 165 + C:06A6H LINE# 166 + C:06A8H LINE# 167 + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:0055H SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0059H SYMBOL num + C:0594H LINE# 175 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/09/2024 17:28:04 PAGE 15 + + + C:059AH LINE# 176 + C:059AH LINE# 177 + C:059AH LINE# 178 + C:059DH LINE# 179 + C:05A0H LINE# 181 + C:05A5H LINE# 182 + C:05A8H LINE# 184 + C:05ABH LINE# 185 + C:05B0H LINE# 186 + C:05B3H LINE# 188 + C:05BAH LINE# 189 + C:05BAH LINE# 190 + C:05CFH LINE# 191 + C:05D7H LINE# 192 + C:05DCH LINE# 193 + C:05DEH LINE# 195 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ?C?CLDPTR + C:01A2H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CSTPTR + C:01BBH PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?IMUL + C:01CDH PUBLIC ?C?IMUL + ------- ENDMOD ?C?IMUL + + ------- MODULE ?C?UIDIV + C:01DFH PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?SLDIV + C:062AH PUBLIC ?C?SLDIV + ------- ENDMOD ?C?SLDIV + + ------- MODULE ?C?ULDIV + C:0270H PUBLIC ?C?ULDIV + ------- ENDMOD ?C?ULDIV + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC + +Program Size: data=88.4 xdata=0 code=2203 +LINK/LOCATE RUN COMPLETE. 4 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Init.obj b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Init.obj new file mode 100644 index 0000000..0c45bf2 Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Init.obj differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Key.obj b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Key.obj new file mode 100644 index 0000000..8022de5 Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Key.obj differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Led.obj b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Led.obj new file mode 100644 index 0000000..e7ca07d Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Led.obj differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Seg.obj b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Seg.obj new file mode 100644 index 0000000..4422f56 Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Seg.obj differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Uart.obj b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Uart.obj new file mode 100644 index 0000000..22f63e6 Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/Uart.obj differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/ds1302.obj b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/ds1302.obj new file mode 100644 index 0000000..f82c197 Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/ds1302.obj differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/iic.obj b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/iic.obj new file mode 100644 index 0000000..48bf9b8 Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/iic.obj differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/main.obj b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/main.obj new file mode 100644 index 0000000..0a5fb47 Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/main.obj differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/onewire.obj b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/onewire.obj new file mode 100644 index 0000000..949830d Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/onewire.obj differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/ultrasound.obj b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/ultrasound.obj new file mode 100644 index 0000000..6a32433 Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/ultrasound.obj differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan new file mode 100644 index 0000000..1a6e839 Binary files /dev/null and b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan differ diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan.build_log.htm b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..7d51fda --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan.build_log.htm @@ -0,0 +1,49 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: VDM51.DLL V1.00 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\blue-bridge-cup-learning\\10 ʮʡ\ʮʡ\User\zuolan.uvproj +Project File Date: 01/25/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling iic.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC +Program Size: data=88.4 xdata=0 code=2203 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 4 Warning(s). +
+ + diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan.hex b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan.hex new file mode 100644 index 0000000..6e9f396 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan.hex @@ -0,0 +1,173 @@ +:10054700082D0A0A0A0A0A0A0A0A082500000000F2 +:100557000000000008420000000000000000013C0D +:01056700662D +:1005E100E53870447538011204CD8F21E52365216A +:1005F100FF5521F522E521F45FF524852123E5222C +:1006010024FB60131460161460192403701A053D4D +:10061100E53D5401F53D22A201B3920122A202B3AC +:08062100920222A200B3920034 +:0106290022AE +:10001E00E537453660030201A1F5367537017F439A +:10002E0012077F7540008F4120010585413C8003FA +:10003E00753C66AF3C120823AE40AF417C007D6438 +:10004E001201CD7D331201DF8E408F41300003024D +:10005E000181E53D1460470460030201A1752D0B7B +:10006E0075310A75300A752F0A752E0AAE40AF41EA +:10007E007C007D641201DF8F32AE40AF417C007D8B +:10008E000A1201DF7C007D0A1201DF8D33AE40AF14 +:10009E00417C007D0A1201DF8D34752A0122752DF7 +:1000AE000C752E0AAE3EAF3FE4FCFD7BA07A86793E +:1000BE0001F812062AEC4D4E4F70047F0A8011AEE5 +:1000CE003EAF3FE4FCFD7BA07A867901F812062A4A +:1000DE008F2FAE3EAF3F7C277D101201DF7C007D5F +:1000EE000A1201DFED4C700AE52F640A70047F0AD4 +:1000FE008002AF058F30AE3EAF3F7C037DE812012C +:10010E00DF7C007D0A1201DFED4C700AE530640AD7 +:10011E0070047F0A8002AF058F31AE3EAF3F7C0088 +:10012E007D641201DF7C007D0A1201DFED4C700A46 +:10013E00E531640A70047F0A8002AF058F32AE3E4D +:10014E00AF3F7C007D0A1201DF7C007D0A1201DFC9 +:10015E00ED4C700AE532640A70047F0A8002AF0526 +:10016E008F33AE3EAF3F7C007D0A1201DF8D34E44B +:03017E00F52A223D +:10018100E4F51DC3E51D9408748094805012742D0C +:10019100251DF8760A7425251DF8E4F6051D80E372 +:0101A100223B +:1003AE00200276AF3D7E00EF70047D0180027D005D +:1003BE008D42EF64014E70047F0180027F008F43F7 +:1003CE00C3E54194FAE5409400500BC3E541949681 +:1003DE00E5409400500BC3E541945EE54094014026 +:1003EE00047F0180027F008F44C3E53F9488E53E81 +:1003FE009413500BC3E53F94E8E53E9403500BC3B2 +:10040E00E53F9410E53E942740047F0180027F0073 +:09041E008F45A201E433F54622EA +:10042700E4F51DC3E51D940874809480500B744255 +:09043700251DF8E4F6051D80EA1C +:010440002299 +:10086200538E7F5389F0438905E4F58AF58CC28D56 +:03087200D28C2203 +:10083900538EBF53890F758B18758DFCC28FD28E5D +:05084900D2ABD2AF228A +:03001B00020302DB +:10030200C0E0C0F0C083C082C0D075D000C000C0C1 +:1003120001C002C003C004C005C006C0070538E51D +:1003220038640A7002F5380537E53770020536641D +:10033200C845367004F536F5370539E53964087075 +:1003420002F539053BE53B7002053AFFAE3ABE03C2 +:100352001BBFE818753A00753B00AF8CEFAD8AF50C +:100362003EEDF53F758A00758C00C28D742D2539DE +:10037200F8E6FD7C0074252539F8E6FB7A00AF39F2 +:1003820012072274422539F8E6FD7C00AF391206C5 +:10039200E7D007D006D005D004D003D002D001D0D8 +:0C03A20000D0D0D082D083D0F0D0E03268 +:10084E001207EB1208621208391205E112001E128D +:04085E0003AE80F570 +:10056800014A00014BFF014C00014DFF014E000103 +:020578004FFF33 +:1006E700ED4C600FA8077401088002C333D8FC42A1 +:1006F7004A800EA8077401088002C333D8FCF4525D +:100707004AE54A654B6013E54AF4F580E5A0541FB6 +:0A0717004480F5A053A01F854A4B53 +:0107210022B5 +:1007A500EF6005434C408003534CBFE54C654D60FD +:1007B50011854C80E5A0541F44A0F5A053A01F85CA +:0207C5004C4D99 +:0107C700220F +:1007C800EF6005434E108003534EEFE54E654F60D2 +:1007D80011854E80E5A0541F44A0F5A053A01F85A5 +:0207E8004E4F72 +:0107EA0022EC +:10057A000D08C0F9A4B0999282F88090FF8EC10844 +:09058A0015010204081020408054 +:100722007580FFE5A0541F44E0F5A074152FF8E68C +:10073200F580E5A0541F44C0F5A053A01F74082DF6 +:10074200F8E6F580EB4A600353807FE5A0541F442E +:07075200E0F5A053A01F22F7 +:1004CD00E4FFC2A9C2C4D2C2D2B5D2B420B3027F56 +:1004DD000420B2027F0520B1027F0620B0027F0703 +:1004ED00D2C4C2C2D2B5D2B420B3027F0820B202A8 +:1004FD007F0920B1027F0A20B0027F0BD2C4D2C285 +:10050D00C2B5D2B420B3027F0C20B2027F0D20B150 +:10051D00027F0E20B0027F0FD2C4D2C2D2B5C2B4B8 +:10052D0020B3027F1020B2027F1120B1027F122072 +:09053D00B0027F1375B0FFD2A9D2 +:010546002292 +:1007EB007580FFE5A0541F4480F5A053A01FE4F5CE +:0D07FB0080E5A0541F44A0F5A053A01F22CC +:04088400D2A07F057A +:0808880000AE071FEE70F9221B +:0F087500D2A1120884C2A17F05120888C2A02256 +:0C089000C2A1120884D2A17F05020888D2 +:10000300C2A0A20392A17F05120888120884C2A08D +:07001300D2A17F050208885D +:0A080800AB071208757F901206B2CC +:10081200120884A2A19203C2A07F05120888A20333 +:0108220022B3 +:0706AB00AB051208757FA0EA +:0206B200AD0792 +:1006B400E4FCECC39408748094805024C2A07F05A9 +:1006C400120888ED30E704D2A18002C2A17F05128E +:1006D4000888D2A0ED25E0FD7F051208880C80D2A1 +:0206E400C2A0B2 +:0106E60022F1 +:10075900E4FCECC39408748094805017120884ED6B +:1007690025E0FD30A103430501C2A07F05120888D9 +:050779000C80DFAF055C +:01077E002258 +:10077F00120808AF031206B21208121208757F9101 +:10078F001206B2120812120759AD07D20312000354 +:05079F00120890AF05F7 +:0107A4002232 +:100823001208087F411206B2120812AF031206B271 +:06083300120812020890F9 +:10066E008B508A5189521206AB120812AF03120632 +:10067E00B2120812AF541554EF601FAB500552E57D +:10068E0052AA517002055114F91201A2FF1206B2BC +:0D069E001208127FC812088880DA02089046 +:100594008B558A5689571206AB120812AF031206FE +:1005A400B21208121208757FA11206B2120812AF15 +:1005B400591559EF6024120759AB550557E557AA49 +:1005C400567002055614F9EF1201BBE5596004C2D6 +:0D05D400038002D20312000380D5020890BC +:03000000020441B6 +:0C044100787FE4F6D8FD7581590204882C +:1001A200BB010689828A83E0225002E722BBFE025B +:0901B200E32289828A83E493228E +:1001BB00BB010689828A83F0225002F722BBFE0123 +:0201CB00F3221D +:1001CD00EF8DF0A4A8F0CF8CF0A428CE8DF0A42E46 +:0201DD00FE2200 +:1001DF00BC000BBE0029EF8DF084FFADF022E4CC04 +:1001EF00F875F008EF2FFFEE33FEEC33FCEE9DECCD +:1001FF00984005FCEE9DFE0FD5F0E9E4CEFD22ED13 +:10020F00F8F5F0EE8420D21CFEADF075F008EF2F5C +:10021F00FFED33FD4007985006D5F0F222C398FD4D +:05022F000FD5F0EA22EA +:10062A00C2D5E830E70FB2D5E4C39BFBE49AFAE4FB +:10063A0099F9E498F8EC30E717B2D512066012027D +:10064A0070E4C39BFBE49AFAE499F9E498F880030E +:10065A0012027030D50DE4C39FFFE49EFEE49DFDB7 +:04066A00E49CFC22EE +:10044D0002084EE493A3F8E493A34003F68001F26F +:10045D0008DFF48029E493A3F85407240CC8C333B0 +:10046D00C4540F4420C8834004F456800146F6DF7F +:10047D00E4800B0102040810204080900547E47EC3 +:10048D00019360BCA3FF543F30E509541FFEE49374 +:10049D00A360010ECF54C025E060A840B8E493A33B +:1004AD00FAE493A3F8E493A3C8C582C8CAC583CA66 +:1004BD00F0A3C8C582C8CAC583CADFE9DEE780BE1E +:010593000067 +:1002340075F008758200EF2FFFEE33FECD33CDCC81 +:1002440033CCC58233C5829BED9AEC99E582984004 +:100254000CF582EE9BFEED9AFDEC99FC0FD5F0D6E1 +:10026400E4CEFBE4CDFAE4CCF9A88222B800C1B90B +:100274000059BA002DEC8BF084CFCECDFCE5F0CB49 +:10028400F97818EF2FFFEE33FEED33FDEC33FCEB82 +:1002940033FB10D703994004EB99FB0FD8E5E4F93D +:1002A400FA227818EF2FFFEE33FEED33FDEC33FC2A +:1002B400C933C910D7059BE99A4007EC9BFCE99A1E +:1002C400F90FD8E0E4C9FAE4CCFB2275F010EF2F63 +:1002D400FFEE33FEED33FDCC33CCC833C810D70763 +:1002E4009BEC9AE899400AED9BFDEC9AFCE899F89E +:0E02F4000FD5F0DAE4CDFBE4CCFAE4C8F92231 +:00000001FF diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan.lnp b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan.lnp new file mode 100644 index 0000000..f151577 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/Objects/zuolan.lnp @@ -0,0 +1,8 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\iic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/main.c b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/main.c new file mode 100644 index 0000000..f649140 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/main.c @@ -0,0 +1,180 @@ +#include "main.h" +/* */ +uchar Key_Slow_Down; // רñ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾݴ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Сݴ +uchar Seg_Pos; // ɨרñ +uint Seg_Slow_Down; // ܼרñ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Ledʾݴ +uchar Uart_Slow_Down; // ڼרñ +uchar Seg_show_mode; // 0ѹ 1Ƶ +uint voltage_value_100x; +uchar DAC_value = 102; // 2*51 +uint frequency_value; +uint time_1s; +bit output_mode; // 0̶DAC=2, 1DAC=RB2 +bit LED_mode; // 0 1رչ +bit Seg_mode; // 0 1ر +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Old, Key_Up; // רñ + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; // ̼ٳ + + Key_Val = Key_Read(); // ʵʱȡֵ + Key_Down = Key_Val & (Key_Old ^ Key_Val); // ׽½ + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); // ׽Ͻ + Key_Old = Key_Val; // ɨ + switch (Key_Down) + { + case 4: + Seg_show_mode = (++Seg_show_mode) % 2; + break; + case 5: + output_mode ^= 1; + break; + case 6: + LED_mode ^= 1; + break; + case 7: + Seg_mode ^= 1; + break; + } +} +/* Ϣ */ +void Seg_Proc() +{ + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; // ܼٳ + + voltage_value_100x = Ad_Read(0x43); + if (!output_mode) + DAC_value = voltage_value_100x; + else + DAC_value = 102; + if (!output_mode) + Da_Write(DAC_value); + else + Da_Write(DAC_value); + voltage_value_100x = voltage_value_100x * 100 / 51; + if (!Seg_mode) + { + switch (Seg_show_mode) + { + case 0: + /* ѹ */ + Seg_Buf[0] = 11; // U + Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + Seg_Buf[5] = voltage_value_100x / 100; + Seg_Buf[6] = voltage_value_100x / 10 % 10; + Seg_Buf[7] = voltage_value_100x % 10; + Seg_Point[5] = 1; + break; + case 1: + /* Ƶʲ */ + Seg_Buf[0] = 12; // F + Seg_Buf[1] = 10; + Seg_Buf[2] = (frequency_value / 100000 == 0) ? 10 : frequency_value / 100000; + Seg_Buf[3] = ((frequency_value / 10000 % 10 == 0) && (Seg_Buf[2] == 10)) ? 10 : frequency_value / 10000 % 10; + Seg_Buf[4] = ((frequency_value / 1000 % 10 == 0) && (Seg_Buf[3] == 10)) ? 10 : frequency_value / 1000 % 10; + Seg_Buf[5] = ((frequency_value / 100 % 10 == 0) && (Seg_Buf[4] == 10)) ? 10 : frequency_value / 100 % 10; + Seg_Buf[6] = ((frequency_value / 10 % 10 == 0) && (Seg_Buf[5] == 10)) ? 10 : frequency_value / 10 % 10; + Seg_Buf[7] = frequency_value % 10; + Seg_Point[5] = 0; + break; + } + } + else + { + uchar i; + for (i = 0; i < 8; i++) + { + Seg_Buf[i] = 10; + Seg_Point[i] = 0; + } + } +} + +/* ʾ */ +void Led_Proc() +{ + if (!LED_mode) + { + ucLed[0] = (Seg_show_mode == 0); + ucLed[1] = (Seg_show_mode == 1); + ucLed[2] = ((voltage_value_100x < 250 && voltage_value_100x >= 150) || + (voltage_value_100x >= 350)); + ucLed[3] = ((frequency_value < 5000 && frequency_value >= 1000) || + frequency_value >= 10000); + ucLed[4] = (output_mode); + } + else + { + uchar i; + for (i = 0; i < 8; i++) + { + ucLed[i] = 0; + } + } +} + +// +void Timer0Init(void) // 0΢@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TMOD |= 0x05; + TL0 = 0x00; // öʱֵ + TH0 = 0x00; // öʱֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ +} +// ʱ +void Timer1Init(void) // 1@12.000MHz +{ + AUXR &= 0xBF; // ʱʱ12Tģʽ + TMOD &= 0x0F; // öʱģʽ + TL1 = 0x18; // öʱֵ + TH1 = 0xFC; // öʱֵ + TF1 = 0; // TF1־ + TR1 = 1; // ʱ1ʼʱ + ET1 = 1; // ʱ1ж + EA = 1; // ж +} + +/* ʱ1жϷ */ +void Timer1Server() interrupt 3 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; // ̼ר + if (++Seg_Slow_Down == 200) + Seg_Slow_Down = 0; // ܼר + if (++Seg_Pos == 8) + Seg_Pos = 0; // ʾר + if (++time_1s == 1000) + { + time_1s = 0; + frequency_value = TH0 << 8 | TL0; + TH0 = TL0 = 0; + TF0 = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +/* Main */ +void main() +{ + System_Init(); + Timer0Init(); + Timer1Init(); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/main.h b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/main.h new file mode 100644 index 0000000..46d1487 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/main.h @@ -0,0 +1,12 @@ +/* 头文件声明区 */ +#include //单片机寄存器专用头文件 +#include //初始化底层驱动专用头文件 +#include //Led底层驱动专用头文件 +#include //按键底层驱动专用头文件 +#include //数码管底层驱动专用头文件 +#include //标准库底层驱动专用头文件 +#include //IIC底层驱动专用头文件 +#include +#include +#define uchar unsigned char +#define uint unsigned int diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/zuolan.uvgui.haze b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/zuolan.uvgui.haze new file mode 100644 index 0000000..4002f58 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/zuolan.uvgui.haze @@ -0,0 +1,1369 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 0 + 1 + + -32000 + -32000 + + + -1 + -1 + + + 11 + -7 + 1185 + 823 + + + + 0 + + 353 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF58433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CD5E6CCE25C313020B5DACAAEBDECCAA1C8FC5CB5DACAAEBDECCAA1C8FC5C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000095010000790000009904000035020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 950100007900000071040000E6000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F2010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F2010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F2010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F2010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000002302000098040000F2020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000026020000FD050000D9020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000026020000FD050000D9020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000026020000FD050000D9020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000F20200009804000005030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000950100007900000071040000E6000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E10200007900000071040000CA010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100000B020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000001000000790000009101000049020000000000004F000000900100000B0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000001000000BA010000710400003B0200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000000B020000980400000F02000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000010000004D0200000106000030030000000000000F02000098040000F20200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2076 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000094B65795F636F756E7496000000000000000400094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E676500000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 1 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 17 + 1 + 25 + 1 + + 0 + + + .\main.c + 4 + 78 + 79 + 1 + + 0 + + + + +
diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/zuolan.uvopt b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/zuolan.uvopt new file mode 100644 index 0000000..3d1e0f2 --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/zuolan.uvopt @@ -0,0 +1,245 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 11 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + +
diff --git a/题目/真题/10 第十届省赛_左岚/第十届省赛/User/zuolan.uvproj b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/zuolan.uvproj new file mode 100644 index 0000000..4f7388c --- /dev/null +++ b/题目/真题/10 第十届省赛_左岚/第十届省赛/User/zuolan.uvproj @@ -0,0 +1,405 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 11 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + iic.c + 1 + ..\Driver\iic.c + + + + + + + +
diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛.jpg b/题目/真题/11 第十一届国赛_左岚/第十一届国赛.jpg new file mode 100644 index 0000000..cf0b7b0 Binary files /dev/null and b/题目/真题/11 第十一届国赛_左岚/第十一届国赛.jpg differ diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/.vscode/settings.json b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Init.c b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Init.h b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Key.c b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Key.h b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Led.c b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Led.c new file mode 100644 index 0000000..1c8922e --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Led.c @@ -0,0 +1,75 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief +/// @param enable 0 1 +void Beep(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x40; + else + temp &= ~(0x40); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ĸ߻ǵ͵ƽ +/// @param enable 0 1 +void MOTOR(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x20; + else + temp &= ~(0x20); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Led.h b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Led.h new file mode 100644 index 0000000..abc3b79 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Led.h @@ -0,0 +1,5 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Beep(bit enable); +void MOTOR(bit enable); +void Relay(bit enable); \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Seg.c b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Seg.c new file mode 100644 index 0000000..5af16fa --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 +// - C E P +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, + 0x80, 0x90, 0xff, 0xbf, 0xc6, 0x86, 0x8c}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) { + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Seg.h b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/ds1302.c b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/ds1302.c new file mode 100644 index 0000000..e9dcfd7 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/ds1302.c @@ -0,0 +1,84 @@ +/* # DS1302代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. + 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "ds1302.h" + +#include "REG52.H" +#include "intrins.h" +sbit SCK = P1 ^ 7; +sbit SDA = P2 ^ 3; +sbit RST = P1 ^ 3; +// +void Write_Ds1302(unsigned char temp) { + unsigned char i; + for (i = 0; i < 8; i++) { + SCK = 0; + SDA = temp & 0x01; + temp >>= 1; + SCK = 1; + } +} + +// +void Write_Ds1302_Byte(unsigned char address, unsigned char dat) { + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST = 0; +} + +// +unsigned char Read_Ds1302_Byte(unsigned char address) { + unsigned char i, temp = 0x00; + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + for (i = 0; i < 8; i++) { + SCK = 0; + temp >>= 1; + if (SDA) temp |= 0x80; + SCK = 1; + } + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + SCK = 1; + _nop_(); + SDA = 0; + _nop_(); + SDA = 1; + _nop_(); + return (temp); +} +void Set_Rtc(unsigned char *ucRtc) { + unsigned char i; + unsigned char temp1; + Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + for (i = 0; i < 3; i++) { + temp1 = (ucRtc[i] / 10 << 4) | (ucRtc[i] % 10); + Write_Ds1302_Byte(0x84 - 2 * i, temp1); + } + Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 +} + +void Read_Rtc(unsigned char *ucRtc) { + unsigned char i; + unsigned char temp2; + for (i = 0; i < 3; i++) { + temp2 = Read_Ds1302_Byte(0x85 - 2 * i); + ucRtc[i] = temp2 / 16 * 10 + temp2 % 16; + } +} \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/ds1302.h b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/ds1302.h new file mode 100644 index 0000000..e8bfdf4 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/ds1302.h @@ -0,0 +1,2 @@ +void Set_Rtc(unsigned char *ucRtc); +void Read_Rtc(unsigned char *ucRtc); \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/iic.c b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/iic.c new file mode 100644 index 0000000..e762928 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/iic.c @@ -0,0 +1,206 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + I2CStart(); + I2CSendByte(0x91); + I2CWaitAck(); + temp = I2CReceiveByte(); + I2CSendAck(1); + I2CStop(); + return temp; +} +// 写入的值是数字值0-255,而不是模拟值 +void Da_Write(unsigned char dat) +{ + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} + +/// @brief EEPROM 写函数 +/// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 写入的数组大小 +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); // 写入的数据的地址 + I2CWaitAck(); + while (num--) + { + I2CSendByte(*EEPROM_String++); + I2CWaitAck(); + I2C_Delay(200); + } + I2CStop(); +} +/// @brief EEPROM 读函数 +/// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 读取的数组大小 +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); + I2CWaitAck(); + + // 选择芯片为EEPROM,模式为读 + I2CStart(); + I2CSendByte(0xA1); + I2CWaitAck(); + while (num--) + { + *EEPROM_String++ = I2CReceiveByte(); + if (num) + I2CSendAck(0); + else + I2CSendAck(1); // 停止读取 + } + I2CStop(); +} \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/iic.h b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/iic.h new file mode 100644 index 0000000..a925af9 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/iic.h @@ -0,0 +1,5 @@ +#include "STC15F2K60S2.H" +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/onewire.c b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/onewire.c new file mode 100644 index 0000000..8efce41 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/onewire.c @@ -0,0 +1,98 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "REG52.H" +#include "intrins.h" +sbit DQ = P1 ^ 4; // 单总线数据口 +void Delay4us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 9; + while (--i) + ; +} + +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + Delay4us(); + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0x44); // 启动温度转换 + Delay_OneWire(200); // 等待温度转换 + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0xbe); // 读取温度值 + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/onewire.h b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/Driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Init.lst b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Init.lst new file mode 100644 index 0000000..dab94b6 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 05/15/2024 16:51:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Key.lst b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Key.lst new file mode 100644 index 0000000..dc9c8fe --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 05/15/2024 16:51:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 05/15/2024 16:51:10 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Led.lst b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Led.lst new file mode 100644 index 0000000..1f39c97 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Led.lst @@ -0,0 +1,101 @@ +C51 COMPILER V9.59.0.0 LED 05/15/2024 16:51:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief + 23 /// @param enable 0 1 + 24 void Beep(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~(0x40); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 /// @brief ̵ + 41 /// @param enable 0 1 + 42 void Relay(bit enable) + 43 { + 44 1 static unsigned char temp = 0x00; + 45 1 static unsigned char temp_old = 0xff; + 46 1 if (enable) + 47 1 temp |= 0x10; + 48 1 else + 49 1 temp &= ~(0x10); + 50 1 if (temp != temp_old) + 51 1 { + 52 2 P0 = temp; + 53 2 P2 = P2 & 0x1f | 0xa0; + 54 2 P2 &= 0x1f; + C51 COMPILER V9.59.0.0 LED 05/15/2024 16:51:10 PAGE 2 + + 55 2 temp_old = temp; + 56 2 } + 57 1 } + 58 /// @brief ĸ߻ǵ͵ƽ + 59 /// @param enable 0 1 + 60 void MOTOR(bit enable) + 61 { + 62 1 static unsigned char temp = 0x00; + 63 1 static unsigned char temp_old = 0xff; + 64 1 if (enable) + 65 1 temp |= 0x20; + 66 1 else + 67 1 temp &= ~(0x20); + 68 1 if (temp != temp_old) + 69 1 { + 70 2 P0 = temp; + 71 2 P2 = P2 & 0x1f | 0xa0; + 72 2 P2 &= 0x1f; + 73 2 temp_old = temp; + 74 2 } + 75 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 163 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 8 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 3 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Seg.lst b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Seg.lst new file mode 100644 index 0000000..7769946 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 05/15/2024 16:51:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 + 3 // - C E P + 4 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, + 5 0x80, 0x90, 0xff, 0xbf, 0xc6, 0x86, 0x8c}; + 6 // λѡ + 7 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 8 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) { + 9 1 // ֶ + 10 1 P0 = 0xff; + 11 1 P2 = P2 & 0x1f | 0xe0; + 12 1 + 13 1 // ѡʾλ + 14 1 P0 = seg_wela[wela]; + 15 1 P2 = P2 & 0x1f | 0xc0; + 16 1 P2 &= 0x1f; + 17 1 + 18 1 // ѡʾ + 19 1 P0 = seg_dula[dula]; + 20 1 if (point) P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 23 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/ds1302.lst b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/ds1302.lst new file mode 100644 index 0000000..ba9e1a7 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/ds1302.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 DS1302 05/15/2024 16:51:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. + 4 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运 + -速度和试题 + 5 中对单片机时钟频率的要求,进行代码调试和修改。 + 6 */ + 7 #include "ds1302.h" + 8 + 9 #include "REG52.H" + 10 #include "intrins.h" + 11 sbit SCK = P1 ^ 7; + 12 sbit SDA = P2 ^ 3; + 13 sbit RST = P1 ^ 3; + 14 // + 15 void Write_Ds1302(unsigned char temp) { + 16 1 unsigned char i; + 17 1 for (i = 0; i < 8; i++) { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) { + 27 1 RST = 0; + 28 1 _nop_(); + 29 1 SCK = 0; + 30 1 _nop_(); + 31 1 RST = 1; + 32 1 _nop_(); + 33 1 Write_Ds1302(address); + 34 1 Write_Ds1302(dat); + 35 1 RST = 0; + 36 1 } + 37 + 38 // + 39 unsigned char Read_Ds1302_Byte(unsigned char address) { + 40 1 unsigned char i, temp = 0x00; + 41 1 RST = 0; + 42 1 _nop_(); + 43 1 SCK = 0; + 44 1 _nop_(); + 45 1 RST = 1; + 46 1 _nop_(); + 47 1 Write_Ds1302(address); + 48 1 for (i = 0; i < 8; i++) { + 49 2 SCK = 0; + 50 2 temp >>= 1; + 51 2 if (SDA) temp |= 0x80; + 52 2 SCK = 1; + 53 2 } + C51 COMPILER V9.59.0.0 DS1302 05/15/2024 16:51:10 PAGE 2 + + 54 1 RST = 0; + 55 1 _nop_(); + 56 1 SCK = 0; + 57 1 _nop_(); + 58 1 SCK = 1; + 59 1 _nop_(); + 60 1 SDA = 0; + 61 1 _nop_(); + 62 1 SDA = 1; + 63 1 _nop_(); + 64 1 return (temp); + 65 1 } + 66 + 67 void Set_Rtc(unsigned char *ucRtc) { + 68 1 unsigned char i; + 69 1 unsigned char temp1; + 70 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 71 1 for (i = 0; i < 3; i++) { + 72 2 temp1 = (ucRtc[i] / 10 << 4) | (ucRtc[i] % 10); + 73 2 Write_Ds1302_Byte(0x84 - 2 * i, temp1); + 74 2 } + 75 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 76 1 } + 77 + 78 void Read_Rtc(unsigned char *ucRtc) { + 79 1 unsigned char i; + 80 1 unsigned char temp2; + 81 1 for (i = 0; i < 3; i++) { + 82 2 temp2 = Read_Ds1302_Byte(0x85 - 2 * i); + 83 2 ucRtc[i] = temp2 / 16 * 10 + temp2 % 16; + 84 2 } + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 251 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/iic.lst b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/iic.lst new file mode 100644 index 0000000..e1faf00 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 05/15/2024 16:51:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 05/15/2024 16:51:10 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 05/15/2024 16:51:10 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 05/15/2024 16:51:10 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/main.lst b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/main.lst new file mode 100644 index 0000000..a45bfa6 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/main.lst @@ -0,0 +1,312 @@ +C51 COMPILER V9.59.0.0 MAIN 05/15/2024 16:51:09 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 + 3 /* LEDʾ */ + 4 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 5 + 6 /* ʾ */ // ܼ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ʱ䷽ */ + 12 uchar ucRtc[3] = {16, 59, 50}; // ʼʱ13:11:11 + 13 + 14 /* ʱ䷽ */ + 15 uint time_all_1s; + 16 uint time_light_3s; + 17 uint time_dark_3s; + 18 /* */ + 19 uchar Seg_show_mode; // 0 1 + 20 uchar Data_show_mode; // 0 ʱ 1 ¶ 2 ⰵ״̬ + 21 uchar Para_show_mode; // 0 ʱ 1 ¶ 2 ָʾ + 22 /* */ + 23 uint T_value_10x; // ¶ȵ10 + 24 uint V_value_100x; // ѹ100 + 25 uchar Para_hour = 17; // Сʱ(0-23) + 26 uchar Para_T = 25; // ¶Ȳ(0-99) + 27 uchar Para_Led = 4; // ָʾƲ ʵ(3-7) -> ʾ (4-8) + 28 uchar Para_hour_temp; // Сʱ(0-23) + 29 uchar Para_T_temp; // ¶Ȳ(0-99) + 30 uchar Para_Led_temp; // ָʾƲ ʵ(3-7) -> ʾ (4-8) + 31 + 32 /* ж */ + 33 bit dark_flag; // 0 1 + 34 bit cold_flag; // 0 1 ڲ + 35 /* ݴ */ + 36 void Data_Proc() { + 37 1 if (time_all_1s % 99 == 0) { + 38 2 // ʱȡ + 39 2 Read_Rtc(ucRtc); + 40 2 } + 41 1 if (time_all_1s % 199 == 0) { + 42 2 // ADȡ + 43 2 V_value_100x = Ad_Read(0x01) * 100 / 51; + 44 2 // ѹС1VʱжΪ + 45 2 dark_flag = (V_value_100x < 100); + 46 2 } + 47 1 if (time_all_1s % 499 == 0) { + 48 2 // ¶ȶȡ + 49 2 T_value_10x = rd_temperature() * 10; + 50 2 cold_flag = (Para_T * 10 > T_value_10x); + 51 2 } + 52 1 } + 53 /* ̴ */ + 54 void Key_Proc() { + C51 COMPILER V9.59.0.0 MAIN 05/15/2024 16:51:09 PAGE 2 + + 55 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 56 1 if (time_all_1s % 10) return; + 57 1 Key_Val = Key_Read(); + 58 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 59 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 60 1 Key_Old = Key_Val; + 61 1 if (Key_Down == 4) { + 62 2 Seg_show_mode = (++Seg_show_mode) % 2; + 63 2 Data_show_mode = 0; + 64 2 Para_show_mode = 0; + 65 2 // ڽ棬ȫֵȥ + 66 2 if (Seg_show_mode == 1) { + 67 3 Para_hour_temp = Para_hour; + 68 3 Para_T_temp = Para_T; + 69 3 Para_Led_temp = Para_Led; + 70 3 } + 71 2 // ڽݽ棬ȫֵȥ + 72 2 else { + 73 3 Para_hour = Para_hour_temp; + 74 3 Para_T = Para_T_temp; + 75 3 Para_Led = Para_Led_temp; + 76 3 } + 77 2 } + 78 1 switch (Seg_show_mode) { + 79 2 case 0: + 80 2 /* */ + 81 2 if (Key_Down == 5) Data_show_mode = (++Data_show_mode) % 3; + 82 2 break; + 83 2 + 84 2 case 1: + 85 2 /* */ + 86 2 if (Key_Down == 5) Para_show_mode = (++Para_show_mode) % 3; + 87 2 switch (Para_show_mode) { + 88 3 case 0: + 89 3 /* ʱ */ + 90 3 if (Key_Down == 8) + 91 3 Para_hour_temp = (Para_hour_temp == 0) ? 23 : Para_hour_temp - 1; + 92 3 else if (Key_Down == 9) + 93 3 Para_hour_temp = (Para_hour_temp == 23) ? 0 : Para_hour_temp + 1; + 94 3 break; + 95 3 case 1: + 96 3 /* ¶ */ + 97 3 if (Key_Down == 8) + 98 3 Para_T_temp = (Para_T_temp == 0) ? 99 : Para_T_temp - 1; + 99 3 else if (Key_Down == 9) + 100 3 Para_T_temp = (Para_T_temp == 99) ? 0 : Para_T_temp + 1; + 101 3 break; + 102 3 + 103 3 case 2: + 104 3 /* Ledָʾ*/ + 105 3 if (Key_Down == 8) + 106 3 Para_Led_temp = (Para_Led_temp == 3) ? 7 : Para_Led_temp - 1; + 107 3 else if (Key_Down == 9) + 108 3 Para_Led_temp = (Para_Led_temp == 7) ? 3 : Para_Led_temp + 1; + 109 3 break; + 110 3 } + 111 2 break; + 112 2 } + 113 1 } + 114 /* ܴ */ + 115 void Seg_Proc() { + 116 1 if (time_all_1s % 20) return; + C51 COMPILER V9.59.0.0 MAIN 05/15/2024 16:51:09 PAGE 3 + + 117 1 switch (Seg_show_mode) { + 118 2 case 0: + 119 2 /* */ + 120 2 switch (Data_show_mode) { + 121 3 case 0: + 122 3 /* ʱ */ + 123 3 Seg_Point[2] = 0; + 124 3 Seg_Point[6] = 0; + 125 3 Seg_Buf[0] = ucRtc[0] / 10; + 126 3 Seg_Buf[1] = ucRtc[0] % 10; + 127 3 Seg_Buf[2] = 11; //- + 128 3 Seg_Buf[3] = ucRtc[1] / 10; + 129 3 Seg_Buf[4] = ucRtc[1] % 10; + 130 3 Seg_Buf[5] = 11; //- + 131 3 Seg_Buf[6] = ucRtc[2] / 10; + 132 3 Seg_Buf[7] = ucRtc[2] % 10; + 133 3 break; + 134 3 + 135 3 case 1: + 136 3 /* ¶ */ + 137 3 Seg_Point[2] = 0; + 138 3 Seg_Point[6] = 1; + 139 3 Seg_Buf[0] = 12; // C + 140 3 Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 141 3 Seg_Buf[5] = T_value_10x / 100 % 10; + 142 3 Seg_Buf[6] = T_value_10x / 10 % 10; + 143 3 Seg_Buf[7] = T_value_10x % 10; + 144 3 break; + 145 3 + 146 3 case 2: + 147 3 /* ⰵ״̬ */ + 148 3 Seg_Point[2] = 1; + 149 3 Seg_Point[6] = 0; + 150 3 Seg_Buf[0] = 13; // E + 151 3 Seg_Buf[1] = 10; + 152 3 Seg_Buf[2] = V_value_100x / 100 % 10; + 153 3 Seg_Buf[3] = V_value_100x / 10 % 10; + 154 3 Seg_Buf[4] = V_value_100x % 10; + 155 3 Seg_Buf[5] = Seg_Buf[6] = 10; + 156 3 Seg_Buf[7] = dark_flag; + 157 3 break; + 158 3 } + 159 2 break; + 160 2 + 161 2 case 1: + 162 2 /* */ + 163 2 Seg_Point[2] = 0; + 164 2 Seg_Point[6] = 0; + 165 2 Seg_Buf[0] = 14; // P + 166 2 Seg_Buf[1] = Para_show_mode + 1; + 167 2 Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + 168 2 switch (Para_show_mode) { + 169 3 case 0: + 170 3 /* ʱ */ + 171 3 Seg_Buf[6] = Para_hour_temp / 10; + 172 3 Seg_Buf[7] = Para_hour_temp % 10; + 173 3 break; + 174 3 + 175 3 case 1: + 176 3 /* ¶ */ + 177 3 Seg_Buf[6] = Para_T_temp / 10; + 178 3 Seg_Buf[7] = Para_T_temp % 10; + C51 COMPILER V9.59.0.0 MAIN 05/15/2024 16:51:09 PAGE 4 + + 179 3 break; + 180 3 + 181 3 case 2: + 182 3 /* ָʾ */ + 183 3 Seg_Buf[6] = 10; + 184 3 Seg_Buf[7] = Para_Led_temp + 1; + 185 3 break; + 186 3 } + 187 2 break; + 188 2 } + 189 1 } + 190 + 191 /* LED */ + 192 void Led_Proc() { + 193 1 uchar i; + 194 1 if (Para_hour <= 8) { + 195 2 // СʱС8ҴڲСʱڲDz + 196 2 if ((ucRtc[0] < 8 && ucRtc[0] > Para_hour) || + 197 2 !(ucRtc[0] == Para_hour && ucRtc[1] == 0 && ucRtc[2] == 0)) + 198 2 ucLed[0] = 1; + 199 2 else + 200 2 ucLed[0] = 0; + 201 2 } else { + 202 2 // СʱڲСʱС8Сʱڲ + 203 2 if (ucRtc[0] < 8 || ucRtc[0] > Para_hour || + 204 2 !(ucRtc[0] == Para_hour && ucRtc[1] == 0 && ucRtc[2] == 0)) + 205 2 ucLed[0] = 1; + 206 2 else + 207 2 ucLed[0] = 0; + 208 2 } + 209 1 ucLed[1] = cold_flag; + 210 1 ucLed[2] = (time_dark_3s >= 3000 || time_light_3s <= 3000); + 211 1 for (i = 3; i < 8; i++) { + 212 2 ucLed[i] = (dark_flag) ? (i == Para_Led) : 0; + 213 2 } + 214 1 } + 215 + 216 /* ʱ0жϳʼ */ + 217 void Timer0_Init(void) // 1@12.000MHz + 218 { + 219 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 220 1 TMOD &= 0xF0; // öʱģʽ + 221 1 TL0 = 0x18; // öʱʼֵ + 222 1 TH0 = 0xFC; // öʱʼֵ + 223 1 TF0 = 0; // TF0־ + 224 1 TR0 = 1; // ʱ0ʼʱ + 225 1 ET0 = 1; + 226 1 EA = 1; + 227 1 } + 228 + 229 /* ʱ0жϺ */ + 230 void Timer0_ISR(void) interrupt 1 { + 231 1 uchar i; + 232 1 if (++time_all_1s == 1000) time_all_1s = 0; + 233 1 Seg_Pos = (++Seg_Pos) % 8; + 234 1 if (dark_flag) { + 235 2 // ںڰ״̬ʼʱֹͣʱҽڰʱ + 236 2 time_light_3s = 0; + 237 2 if (++time_dark_3s >= 3000) { + 238 3 time_dark_3s = 3001; + 239 3 } + 240 2 } else { + C51 COMPILER V9.59.0.0 MAIN 05/15/2024 16:51:09 PAGE 5 + + 241 2 // ڹ״̬ʼʱֹͣڰʱҽʱ + 242 2 time_dark_3s = 0; + 243 2 if (++time_light_3s >= 3000) { + 244 3 time_light_3s = 3001; + 245 3 } + 246 2 } + 247 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 248 1 for (i = 0; i < 8; i++) { + 249 2 Led_Disp(i, ucLed[i]); + 250 2 } + 251 1 } + 252 + 253 void Delay750ms(void) //@12.000MHz + 254 { + 255 1 unsigned char data i, j, k; + 256 1 + 257 1 _nop_(); + 258 1 _nop_(); + 259 1 i = 35; + 260 1 j = 51; + 261 1 k = 182; + 262 1 do { + 263 2 do { + 264 3 while (--k); + 265 3 } while (--j); + 266 2 } while (--i); + 267 1 } + 268 void main() { + 269 1 System_Init(); + 270 1 Timer0_Init(); + 271 1 Set_Rtc(ucRtc); + 272 1 rd_temperature(); + 273 1 Delay750ms(); + 274 1 while (1) { + 275 2 Data_Proc(); + 276 2 Key_Proc(); + 277 2 Seg_Proc(); + 278 2 Led_Proc(); + 279 2 } + 280 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 1188 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 51 1 + IDATA SIZE = ---- ---- + BIT SIZE = 2 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/onewire.lst b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/onewire.lst new file mode 100644 index 0000000..e6163d6 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/onewire.lst @@ -0,0 +1,125 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 05/15/2024 16:51:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit DQ = P1 ^ 4; // 单总线数据口 + 10 void Delay4us(void) //@12.000MHz + 11 { + 12 1 unsigned char data i; + 13 1 + 14 1 _nop_(); + 15 1 _nop_(); + 16 1 i = 9; + 17 1 while (--i) + 18 1 ; + 19 1 } + 20 + 21 // + 22 void Delay_OneWire(unsigned int t) + 23 { + 24 1 unsigned char i; + 25 1 while (t--) + 26 1 { + 27 2 for (i = 0; i < 12; i++) + 28 2 ; + 29 2 } + 30 1 } + 31 + 32 // + 33 void Write_DS18B20(unsigned char dat) + 34 { + 35 1 unsigned char i; + 36 1 for (i = 0; i < 8; i++) + 37 1 { + 38 2 DQ = 0; + 39 2 DQ = dat & 0x01; + 40 2 Delay_OneWire(5); + 41 2 DQ = 1; + 42 2 dat >>= 1; + 43 2 } + 44 1 Delay_OneWire(5); + 45 1 } + 46 + 47 // + 48 unsigned char Read_DS18B20(void) + 49 { + 50 1 unsigned char i; + 51 1 unsigned char dat; + 52 1 + 53 1 for (i = 0; i < 8; i++) + C51 COMPILER V9.59.0.0 ONEWIRE 05/15/2024 16:51:10 PAGE 2 + + 54 1 { + 55 2 DQ = 0; + 56 2 dat >>= 1; + 57 2 DQ = 1; + 58 2 Delay4us(); + 59 2 if (DQ) + 60 2 { + 61 3 dat |= 0x80; + 62 3 } + 63 2 Delay_OneWire(5); + 64 2 } + 65 1 return dat; + 66 1 } + 67 + 68 // + 69 bit init_ds18b20(void) + 70 { + 71 1 bit initflag = 0; + 72 1 + 73 1 DQ = 1; + 74 1 Delay_OneWire(12); + 75 1 DQ = 0; + 76 1 Delay_OneWire(80); + 77 1 DQ = 1; + 78 1 Delay_OneWire(10); + 79 1 initflag = DQ; + 80 1 Delay_OneWire(5); + 81 1 + 82 1 return initflag; + 83 1 } + 84 + 85 float rd_temperature() + 86 { + 87 1 unsigned char low, high; + 88 1 init_ds18b20(); + 89 1 Write_DS18B20(0xcc); // 跳过ROM + 90 1 Write_DS18B20(0x44); // 启动温度转换 + 91 1 Delay_OneWire(200); // 等待温度转换 + 92 1 init_ds18b20(); + 93 1 Write_DS18B20(0xcc); // 跳过ROM + 94 1 Write_DS18B20(0xbe); // 读取温度值 + 95 1 low = Read_DS18B20(); + 96 1 high = Read_DS18B20(); + 97 1 return (float)(high << 8 | low) * 0.0625; + 98 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 212 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/zuolan.m51 b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/zuolan.m51 new file mode 100644 index 0000000..7e7a6f3 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Listings/zuolan.m51 @@ -0,0 +1,1333 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\ds1302.obj, .\Objects\iic.obj, .\Objects\onewire.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) +>> RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\ds1302.obj (DS1302) + .\Objects\iic.obj (IIC) + .\Objects\onewire.obj (ONEWIRE) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0017H UNIT ?DT?SEG + 001FH 0001H *** GAP *** + BIT 0020H.0 0000H.2 UNIT ?BI?MAIN + BIT 0020H.2 0000H.1 UNIT ?BI?BEEP?LED + BIT 0020H.3 0000H.1 UNIT ?BI?RELAY?LED + BIT 0020H.4 0000H.1 UNIT ?BI?MOTOR?LED + BIT 0020H.5 0000H.1 UNIT _BIT_GROUP_ + 0020H.6 0000H.2 *** GAP *** + DATA 0021H 0033H UNIT ?DT?MAIN + DATA 0054H 0008H UNIT ?DT?LED + DATA 005CH 0005H UNIT ?DT?_EEPROM_WRITE?IIC + DATA 0061H 0005H UNIT ?DT?_EEPROM_READ?IIC + DATA 0066H 0004H UNIT _DATA_GROUP_ + IDATA 006AH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0007H UNIT ?PR?DELAY4US?ONEWIRE + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 2 + + + 000AH 0001H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 02A2H UNIT ?C?LIB_CODE + CODE 02B0H 014FH UNIT ?PR?SEG_PROC?MAIN + CODE 03FFH 0126H UNIT ?PR?KEY_PROC?MAIN + CODE 0525H 00C7H UNIT ?PR?TIMER0_ISR?MAIN + CODE 05ECH 009CH UNIT ?PR?LED_PROC?MAIN + CODE 0688H 008CH UNIT ?C_C51STARTUP + CODE 0714H 0085H UNIT ?PR?DATA_PROC?MAIN + CODE 0799H 007AH UNIT ?PR?KEY_READ?KEY + CODE 0813H 0060H UNIT ?C_INITSEG + CODE 0873H 0051H UNIT ?PR?_SET_RTC?DS1302 + CODE 08C4H 0042H UNIT ?PR?_EEPROM_READ?IIC + CODE 0906H 003DH UNIT ?PR?_READ_DS1302_BYTE?DS1302 + CODE 0943H 003DH UNIT ?PR?_READ_RTC?DS1302 + CODE 0980H 003BH UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 09BBH 003AH UNIT ?PR?_LED_DISP?LED + CODE 09F5H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 0A2BH 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 0A60H 0032H UNIT ?PR?_EEPROM_WRITE?IIC + CODE 0A92H 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 0AB9H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 0AE0H 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 0B06H 0026H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0B2CH 0025H UNIT ?PR?_AD_READ?IIC + CODE 0B51H 0024H UNIT ?PR?I2CWAITACK?IIC + CODE 0B75H 0023H UNIT ?PR?MAIN?MAIN + CODE 0B98H 0023H UNIT ?PR?BEEP?LED + CODE 0BBBH 0023H UNIT ?PR?RELAY?LED + CODE 0BDEH 0023H UNIT ?PR?MOTOR?LED + CODE 0C01H 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 0C1FH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0C3CH 001CH UNIT ?PR?_WRITE_DS1302?DS1302 + CODE 0C58H 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 0C72H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 0C8AH 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0C9FH 0015H UNIT ?PR?_DA_WRITE?IIC + CODE 0CB4H 0014H UNIT ?PR?_WRITE_DS1302_BYTE?DS1302 + CODE 0CC8H 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 0CD7H 000FH UNIT ?PR?I2CSTART?IIC + CODE 0CE6H 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- 0066H 0001H + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 3 + + + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?_SET_RTC?DS1302 + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?DATA_PROC?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?_SET_RTC?DS1302 ----- ----- 0067H 0003H + +--> ?PR?_WRITE_DS1302_BYTE?DS1302 + +?PR?_WRITE_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.5 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?DELAY4US?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?DATA_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_READ_RTC?DS1302 + +--> ?PR?_AD_READ?IIC + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +?PR?_READ_RTC?DS1302 ----- ----- 0067H 0003H + +--> ?PR?_READ_DS1302_BYTE?DS1302 + +?PR?_READ_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?_AD_READ?IIC ----- ----- ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 4 + + + +?PR?I2CWAITACK?IIC ----- ----- ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDACK?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:0525H PUBLIC Timer0_ISR + D:0025H PUBLIC ucRtc + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + B:00A8H.7 PUBLIC EA + D:00F8H PUBLIC P7 + C:05ECH PUBLIC Led_Proc + D:0028H PUBLIC Seg_Point + D:00A8H PUBLIC IE + D:0030H PUBLIC T_value_10x + D:0032H PUBLIC Para_Led_temp + C:02B0H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:0033H PUBLIC Seg_Buf + C:03FFH PUBLIC Key_Proc + B:0020H.0 PUBLIC cold_flag + B:0020H.1 PUBLIC dark_flag + D:00D8H PUBLIC CCON + C:0B75H PUBLIC main + D:003BH PUBLIC Para_hour + D:003CH PUBLIC Data_show_mode + C:0C8AH PUBLIC Timer0_Init + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 5 + + + D:003DH PUBLIC Para_show_mode + D:003EH PUBLIC time_light_3s + D:0040H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:0041H PUBLIC Para_T + D:0042H PUBLIC time_dark_3s + D:0044H PUBLIC Para_hour_temp + D:0045H PUBLIC V_value_100x + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:0047H PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + D:0048H PUBLIC time_all_1s + D:004AH PUBLIC Para_T_temp + B:0088H.4 PUBLIC TR0 + D:004BH PUBLIC ucLed + C:0CC8H PUBLIC Delay750ms + C:0714H PUBLIC Data_Proc + D:00D0H PUBLIC PSW + D:0053H PUBLIC Para_Led + ------- PROC DATA_PROC + C:0714H LINE# 36 + C:0714H LINE# 37 + C:0723H LINE# 39 + C:072BH LINE# 40 + C:072BH LINE# 41 + C:073AH LINE# 43 + C:0752H LINE# 45 + C:0760H LINE# 46 + C:0760H LINE# 47 + C:076FH LINE# 49 + C:0783H LINE# 50 + C:0798H LINE# 51 + C:0798H LINE# 52 + ------- ENDPROC DATA_PROC + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:03FFH LINE# 54 + C:03FFH LINE# 56 + C:0411H LINE# 57 + C:0416H LINE# 58 + C:041FH LINE# 59 + C:0425H LINE# 60 + C:0428H LINE# 61 + C:0431H LINE# 62 + C:0439H LINE# 63 + C:043CH LINE# 64 + C:043EH LINE# 66 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 6 + + + C:0444H LINE# 67 + C:0447H LINE# 68 + C:044AH LINE# 69 + C:044DH LINE# 70 + C:044FH LINE# 72 + C:044FH LINE# 73 + C:0452H LINE# 74 + C:0455H LINE# 75 + C:0458H LINE# 76 + C:0458H LINE# 77 + C:0458H LINE# 78 + C:0463H LINE# 79 + C:0463H LINE# 81 + C:0477H LINE# 82 + C:0478H LINE# 84 + C:0478H LINE# 86 + C:0489H LINE# 87 + C:0498H LINE# 88 + C:0498H LINE# 90 + C:04A1H LINE# 91 + C:04B0H LINE# 92 + C:04B6H LINE# 93 + C:04C5H LINE# 94 + C:04C6H LINE# 95 + C:04C6H LINE# 97 + C:04CFH LINE# 98 + C:04DEH LINE# 99 + C:04E4H LINE# 100 + C:04F3H LINE# 101 + C:04F4H LINE# 103 + C:04F4H LINE# 105 + C:04FDH LINE# 106 + C:050EH LINE# 107 + C:0514H LINE# 108 + C:0524H LINE# 109 + C:0524H LINE# 110 + C:0524H LINE# 111 + C:0524H LINE# 112 + C:0524H LINE# 113 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:02B0H LINE# 115 + C:02B0H LINE# 116 + C:02C2H LINE# 117 + C:02D0H LINE# 118 + C:02D0H LINE# 120 + C:02E2H LINE# 121 + C:02E2H LINE# 123 + C:02E5H LINE# 124 + C:02E7H LINE# 125 + C:02EFH LINE# 126 + C:02F8H LINE# 127 + C:02FBH LINE# 128 + C:0303H LINE# 129 + C:030CH LINE# 130 + C:030FH LINE# 131 + C:0317H LINE# 132 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 7 + + + C:0319H LINE# 133 + C:031CH LINE# 135 + C:031CH LINE# 137 + C:031FH LINE# 138 + C:0322H LINE# 139 + C:0325H LINE# 140 + C:0331H LINE# 141 + C:0344H LINE# 142 + C:0358H LINE# 143 + C:0365H LINE# 144 + C:0366H LINE# 146 + C:0366H LINE# 148 + C:0369H LINE# 149 + C:036CH LINE# 150 + C:036FH LINE# 151 + C:0372H LINE# 152 + C:0385H LINE# 153 + C:0399H LINE# 154 + C:03A6H LINE# 155 + C:03ACH LINE# 156 + C:03B2H LINE# 157 + C:03B3H LINE# 158 + C:03B3H LINE# 159 + C:03B3H LINE# 161 + C:03B3H LINE# 163 + C:03B6H LINE# 164 + C:03B8H LINE# 165 + C:03BBH LINE# 166 + C:03C0H LINE# 167 + C:03CCH LINE# 168 + C:03D8H LINE# 169 + C:03D8H LINE# 171 + C:03E0H LINE# 172 + C:03E2H LINE# 173 + C:03E4H LINE# 175 + C:03E4H LINE# 177 + C:03ECH LINE# 178 + C:03F5H LINE# 179 + C:03F6H LINE# 181 + C:03F6H LINE# 183 + C:03F9H LINE# 184 + C:03FEH LINE# 185 + C:03FEH LINE# 186 + C:03FEH LINE# 187 + C:03FEH LINE# 188 + C:03FEH LINE# 189 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:05ECH LINE# 192 + C:05ECH LINE# 194 + C:05F7H LINE# 196 + C:0615H LINE# 198 + C:0617H LINE# 203 + C:0636H LINE# 205 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 8 + + + C:063BH LINE# 207 + C:063EH LINE# 208 + C:063EH LINE# 209 + C:0644H LINE# 210 + C:0661H LINE# 211 + C:066DH LINE# 212 + C:0684H LINE# 213 + C:0687H LINE# 214 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:0C8AH LINE# 217 + C:0C8AH LINE# 218 + C:0C8AH LINE# 219 + C:0C8DH LINE# 220 + C:0C90H LINE# 221 + C:0C93H LINE# 222 + C:0C96H LINE# 223 + C:0C98H LINE# 224 + C:0C9AH LINE# 225 + C:0C9CH LINE# 226 + C:0C9EH LINE# 227 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + ------- DO + D:0066H SYMBOL i + ------- ENDDO + C:0525H LINE# 230 + C:0542H LINE# 232 + C:0559H LINE# 233 + C:0561H LINE# 234 + C:0564H LINE# 236 + C:056AH LINE# 237 + C:057BH LINE# 238 + C:0581H LINE# 239 + C:0581H LINE# 240 + C:0583H LINE# 242 + C:0589H LINE# 243 + C:059AH LINE# 244 + C:05A0H LINE# 245 + C:05A0H LINE# 246 + C:05A0H LINE# 247 + C:05B3H LINE# 248 + C:05C1H LINE# 249 + C:05CDH LINE# 250 + C:05D1H LINE# 251 + ------- ENDPROC TIMER0_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0CC8H LINE# 253 + C:0CC8H LINE# 254 + C:0CC8H LINE# 257 + C:0CC9H LINE# 258 + C:0CCAH LINE# 259 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 9 + + + C:0CCCH LINE# 260 + C:0CCEH LINE# 261 + C:0CD0H LINE# 262 + C:0CD0H LINE# 263 + C:0CD0H LINE# 264 + C:0CD2H LINE# 265 + C:0CD4H LINE# 266 + C:0CD6H LINE# 267 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:0B75H LINE# 268 + C:0B75H LINE# 269 + C:0B78H LINE# 270 + C:0B7BH LINE# 271 + C:0B84H LINE# 272 + C:0B87H LINE# 273 + C:0B8AH LINE# 274 + C:0B8AH LINE# 275 + C:0B8DH LINE# 276 + C:0B90H LINE# 277 + C:0B93H LINE# 278 + C:0B96H LINE# 279 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:0BBBH PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:09BBH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + C:0BDEH PUBLIC MOTOR + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:0B98H PUBLIC Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:0054H SYMBOL temp + D:0055H SYMBOL temp_old + ------- ENDDO + C:09BBH LINE# 5 + C:09BBH LINE# 6 + C:09BBH LINE# 10 + C:09BEH LINE# 11 + C:09CDH LINE# 13 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 10 + + + C:09DBH LINE# 14 + C:09E1H LINE# 15 + C:09E1H LINE# 16 + C:09E6H LINE# 17 + C:09EEH LINE# 18 + C:09F1H LINE# 19 + C:09F4H LINE# 20 + C:09F4H LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC BEEP + B:0020H.2 SYMBOL enable + ------- DO + D:0056H SYMBOL temp + D:0057H SYMBOL temp_old + ------- ENDDO + C:0B98H LINE# 24 + C:0B98H LINE# 25 + C:0B98H LINE# 28 + C:0B9BH LINE# 29 + C:0BA0H LINE# 31 + C:0BA3H LINE# 32 + C:0BA9H LINE# 33 + C:0BA9H LINE# 34 + C:0BACH LINE# 35 + C:0BB4H LINE# 36 + C:0BB7H LINE# 37 + C:0BBAH LINE# 38 + C:0BBAH LINE# 39 + ------- ENDPROC BEEP + ------- PROC RELAY + B:0020H.3 SYMBOL enable + ------- DO + D:0058H SYMBOL temp + D:0059H SYMBOL temp_old + ------- ENDDO + C:0BBBH LINE# 42 + C:0BBBH LINE# 43 + C:0BBBH LINE# 46 + C:0BBEH LINE# 47 + C:0BC3H LINE# 49 + C:0BC6H LINE# 50 + C:0BCCH LINE# 51 + C:0BCCH LINE# 52 + C:0BCFH LINE# 53 + C:0BD7H LINE# 54 + C:0BDAH LINE# 55 + C:0BDDH LINE# 56 + C:0BDDH LINE# 57 + ------- ENDPROC RELAY + ------- PROC MOTOR + B:0020H.4 SYMBOL enable + ------- DO + D:005AH SYMBOL temp + D:005BH SYMBOL temp_old + ------- ENDDO + C:0BDEH LINE# 60 + C:0BDEH LINE# 61 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 11 + + + C:0BDEH LINE# 64 + C:0BE1H LINE# 65 + C:0BE6H LINE# 67 + C:0BE9H LINE# 68 + C:0BEFH LINE# 69 + C:0BEFH LINE# 70 + C:0BF2H LINE# 71 + C:0BFAH LINE# 72 + C:0BFDH LINE# 73 + C:0C00H LINE# 74 + C:0C00H LINE# 75 + ------- ENDPROC MOTOR + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:09F5H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0017H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:09F5H LINE# 8 + C:09F5H LINE# 10 + C:09F8H LINE# 11 + C:0A00H LINE# 14 + C:0A07H LINE# 15 + C:0A0FH LINE# 16 + C:0A12H LINE# 19 + C:0A19H LINE# 20 + C:0A1FH LINE# 21 + C:0A27H LINE# 22 + C:0A2AH LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + 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 05/15/2024 16:51:10 PAGE 12 + + + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0799H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + B:00B0H.1 PUBLIC P31 + D:0098H PUBLIC SCON + B:00B0H.2 PUBLIC P32 + D:0088H PUBLIC TCON + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0799H LINE# 2 + C:0799H LINE# 3 + C:0799H LINE# 4 + C:079BH LINE# 5 + C:079DH LINE# 6 + C:079FH LINE# 7 + C:07A1H LINE# 8 + C:07A3H LINE# 9 + C:07A5H LINE# 10 + C:07A8H LINE# 11 + C:07AAH LINE# 12 + C:07ADH LINE# 13 + C:07AFH LINE# 14 + C:07B2H LINE# 15 + C:07B4H LINE# 16 + C:07B7H LINE# 17 + C:07B9H LINE# 18 + C:07BBH LINE# 19 + C:07BDH LINE# 20 + C:07BFH LINE# 21 + C:07C1H LINE# 22 + C:07C4H LINE# 23 + C:07C6H LINE# 24 + C:07C9H LINE# 25 + C:07CBH LINE# 26 + C:07CEH LINE# 27 + C:07D0H LINE# 28 + C:07D3H LINE# 29 + C:07D5H LINE# 30 + C:07D7H LINE# 31 + C:07D9H LINE# 32 + C:07DBH LINE# 33 + C:07DDH LINE# 34 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 13 + + + C:07E0H LINE# 35 + C:07E2H LINE# 36 + C:07E5H LINE# 37 + C:07E7H LINE# 38 + C:07EAH LINE# 39 + C:07ECH LINE# 40 + C:07EFH LINE# 41 + C:07F1H LINE# 42 + C:07F3H LINE# 43 + C:07F5H LINE# 44 + C:07F7H LINE# 45 + C:07F9H LINE# 46 + C:07FCH LINE# 47 + C:07FEH LINE# 48 + C:0801H LINE# 49 + C:0803H LINE# 50 + C:0806H LINE# 51 + C:0808H LINE# 52 + C:080BH LINE# 53 + C:080DH LINE# 54 + C:080FH LINE# 55 + C:0812H LINE# 56 + C:0812H LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0C1FH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0C1FH LINE# 3 + C:0C1FH LINE# 4 + C:0C1FH LINE# 5 + C:0C22H LINE# 6 + C:0C2AH LINE# 7 + C:0C2DH LINE# 9 + C:0C30H LINE# 10 + C:0C38H LINE# 11 + C:0C3BH LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE DS1302 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 14 + + + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0943H PUBLIC _Read_Rtc + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0873H PUBLIC _Set_Rtc + C:0906H PUBLIC _Read_Ds1302_Byte + B:00A0H.3 PUBLIC SDA + B:0090H.7 PUBLIC SCK + C:0CB4H PUBLIC _Write_Ds1302_Byte + D:00C8H PUBLIC T2CON + C:0C3CH PUBLIC _Write_Ds1302 + B:0090H.3 PUBLIC RST + D:00D0H PUBLIC PSW + ------- PROC _WRITE_DS1302 + D:0007H SYMBOL temp + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0C3CH LINE# 15 + C:0C3CH LINE# 17 + C:0C48H LINE# 18 + C:0C4AH LINE# 19 + C:0C4EH LINE# 20 + C:0C52H LINE# 21 + C:0C54H LINE# 22 + C:0C57H LINE# 23 + ------- ENDPROC _WRITE_DS1302 + ------- PROC _WRITE_DS1302_BYTE + D:0007H SYMBOL address + D:0005H SYMBOL dat + C:0CB4H LINE# 26 + C:0CB4H LINE# 27 + C:0CB6H LINE# 28 + C:0CB7H LINE# 29 + C:0CB9H LINE# 30 + C:0CBAH LINE# 31 + C:0CBCH LINE# 32 + C:0CBDH LINE# 33 + C:0CC0H LINE# 34 + C:0CC5H LINE# 35 + C:0CC7H LINE# 36 + ------- ENDPROC _WRITE_DS1302_BYTE + ------- PROC _READ_DS1302_BYTE + D:0007H SYMBOL address + ------- DO + D:0007H SYMBOL i + D:0005H SYMBOL temp + ------- ENDDO + C:0906H LINE# 39 + C:0906H LINE# 40 + C:0908H LINE# 41 + C:090AH LINE# 42 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 15 + + + C:090BH LINE# 43 + C:090DH LINE# 44 + C:090EH LINE# 45 + C:0910H LINE# 46 + C:0911H LINE# 47 + C:0914H LINE# 48 + C:0920H LINE# 49 + C:0922H LINE# 50 + C:0926H LINE# 51 + C:092CH LINE# 52 + C:092EH LINE# 53 + C:0931H LINE# 54 + C:0933H LINE# 55 + C:0934H LINE# 56 + C:0936H LINE# 57 + C:0937H LINE# 58 + C:0939H LINE# 59 + C:093AH LINE# 60 + C:093CH LINE# 61 + C:093DH LINE# 62 + C:093FH LINE# 63 + C:0940H LINE# 64 + C:0942H LINE# 65 + ------- ENDPROC _READ_DS1302_BYTE + ------- PROC _SET_RTC + D:0067H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + D:0003H SYMBOL temp1 + ------- ENDDO + C:0873H LINE# 67 + C:0879H LINE# 70 + C:0880H LINE# 71 + C:088CH LINE# 72 + C:08ACH LINE# 73 + C:08BAH LINE# 74 + C:08BDH LINE# 75 + ------- ENDPROC _SET_RTC + ------- PROC _READ_RTC + D:0067H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + D:0007H SYMBOL temp2 + ------- ENDDO + C:0943H LINE# 78 + C:0949H LINE# 81 + C:0955H LINE# 82 + C:0961H LINE# 83 + C:097CH LINE# 84 + C:097FH LINE# 85 + ------- ENDPROC _READ_RTC + ------- ENDMOD DS1302 + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 16 + + + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0B2CH PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0C5CH SYMBOL _I2C_Delay + C:0C9FH PUBLIC _Da_Write + D:00B8H PUBLIC IP + C:0AE0H PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + C:08C4H PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + C:0A60H PUBLIC _EEPROM_Write + B:00A0H.0 PUBLIC scl + C:0CD7H PUBLIC I2CStart + C:0C72H PUBLIC _I2CSendAck + C:0A2BH PUBLIC _I2CSendByte + C:0B63H PUBLIC I2CWaitAck + C:0CE6H PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:0C58H SYMBOL L?0036 + ------- PROC L?0035 + ------- ENDPROC L?0035 + C:0C58H SYMBOL L?0036 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:0C5CH LINE# 12 + C:0C5CH LINE# 13 + C:0C5CH LINE# 15 + C:0C5CH LINE# 16 + C:0C5DH LINE# 17 + C:0C5EH LINE# 18 + C:0C5FH LINE# 19 + C:0C60H LINE# 20 + C:0C61H LINE# 21 + C:0C62H LINE# 22 + C:0C63H LINE# 23 + C:0C64H LINE# 24 + C:0C65H LINE# 25 + C:0C66H LINE# 26 + C:0C67H LINE# 27 + C:0C68H LINE# 28 + C:0C69H LINE# 29 + C:0C6AH LINE# 30 + C:0C6BH LINE# 31 + C:0C71H LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:0CD7H LINE# 35 + C:0CD7H LINE# 36 + C:0CD7H LINE# 37 + C:0CD9H LINE# 38 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 17 + + + C:0CD9H LINE# 39 + C:0CDCH LINE# 40 + C:0CDEH LINE# 41 + C:0CE3H LINE# 42 + C:0CE5H LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:0CE6H LINE# 46 + C:0CE6H LINE# 47 + C:0CE6H LINE# 48 + C:0CE8H LINE# 49 + C:0CE8H LINE# 50 + C:0CEBH LINE# 51 + C:0CEDH LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0A2BH LINE# 56 + C:0A2DH LINE# 57 + C:0A2DH LINE# 60 + C:0A39H LINE# 61 + C:0A39H LINE# 62 + C:0A3BH LINE# 63 + C:0A40H LINE# 64 + C:0A44H LINE# 65 + C:0A44H LINE# 66 + C:0A46H LINE# 67 + C:0A48H LINE# 69 + C:0A48H LINE# 70 + C:0A4AH LINE# 71 + C:0A4AH LINE# 72 + C:0A4FH LINE# 73 + C:0A51H LINE# 74 + C:0A55H LINE# 75 + C:0A5AH LINE# 76 + C:0A5DH LINE# 78 + C:0A5FH LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:0AE0H LINE# 82 + C:0AE0H LINE# 83 + C:0AE0H LINE# 86 + C:0AECH LINE# 87 + C:0AECH LINE# 88 + C:0AECH LINE# 89 + C:0AEFH LINE# 90 + C:0AF3H LINE# 91 + C:0AF6H LINE# 92 + C:0AF9H LINE# 93 + C:0AFBH LINE# 94 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 18 + + + C:0B00H LINE# 95 + C:0B03H LINE# 96 + C:0B05H LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + C:0B58H SYMBOL L?0034 + ------- PROC L?0033 + ------- ENDPROC L?0033 + C:0B58H SYMBOL L?0034 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:0B63H LINE# 100 + C:0B63H LINE# 101 + C:0B63H LINE# 104 + C:0B63H LINE# 105 + C:0B66H LINE# 106 + C:0B6BH LINE# 107 + C:0B6DH LINE# 108 + C:0B72H LINE# 110 + C:0B74H LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:0C72H LINE# 114 + C:0C72H LINE# 115 + C:0C72H LINE# 116 + C:0C74H LINE# 117 + C:0C79H LINE# 118 + C:0C7EH LINE# 119 + C:0C7EH LINE# 120 + C:0C81H LINE# 121 + C:0C83H LINE# 122 + C:0C85H LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:0B2CH LINE# 126 + C:0B2EH LINE# 127 + C:0B2EH LINE# 130 + C:0B31H LINE# 131 + C:0B33H LINE# 132 + C:0B33H LINE# 133 + C:0B33H LINE# 134 + C:0B36H LINE# 135 + C:0B39H LINE# 136 + C:0B3EH LINE# 137 + C:0B41H LINE# 138 + C:0B46H LINE# 139 + C:0B4BH LINE# 140 + C:0B4EH LINE# 141 + C:0B50H LINE# 142 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 19 + + + D:0003H SYMBOL dat + C:0C9FH LINE# 144 + C:0CA1H LINE# 145 + C:0CA1H LINE# 147 + C:0CA4H LINE# 148 + C:0CA9H LINE# 149 + C:0CACH LINE# 151 + C:0CAEH LINE# 152 + C:0CAEH LINE# 153 + C:0CAEH LINE# 154 + C:0CB1H LINE# 155 + ------- ENDPROC _DA_WRITE + ------- PROC _EEPROM_WRITE + D:005CH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0060H SYMBOL num + C:0A60H LINE# 162 + C:0A66H LINE# 163 + C:0A66H LINE# 165 + C:0A66H LINE# 166 + C:0A66H LINE# 167 + C:0A66H LINE# 169 + C:0A66H LINE# 170 + C:0A69H LINE# 171 + C:0A70H LINE# 172 + C:0A70H LINE# 173 + C:0A85H LINE# 174 + C:0A88H LINE# 175 + C:0A8DH LINE# 176 + C:0A8FH LINE# 177 + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:0061H SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0065H SYMBOL num + C:08C4H LINE# 183 + C:08CAH LINE# 184 + C:08CAH LINE# 186 + C:08CAH LINE# 187 + C:08CAH LINE# 188 + C:08CAH LINE# 190 + C:08CAH LINE# 191 + C:08CDH LINE# 194 + C:08D0H LINE# 195 + C:08D5H LINE# 196 + C:08D8H LINE# 197 + C:08DFH LINE# 198 + C:08DFH LINE# 199 + C:08F4H LINE# 200 + C:08F8H LINE# 201 + C:08FCH LINE# 203 + C:0901H LINE# 204 + C:0903H LINE# 205 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ONEWIRE + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 20 + + + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:0B06H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:0C05H PUBLIC _Delay_OneWire + C:0003H PUBLIC Delay4us + C:0A92H PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:0AB9H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:0980H PUBLIC rd_temperature + D:00D0H PUBLIC PSW + ------- PROC DELAY4US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0003H LINE# 10 + C:0003H LINE# 11 + C:0003H LINE# 14 + C:0004H LINE# 15 + C:0005H LINE# 16 + C:0007H LINE# 17 + C:0009H LINE# 19 + ------- ENDPROC DELAY4US + C:0C01H SYMBOL L?0023 + ------- PROC L?0022 + ------- ENDPROC L?0022 + C:0C01H SYMBOL L?0023 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:0C05H LINE# 22 + C:0C05H LINE# 23 + C:0C05H LINE# 25 + C:0C0FH LINE# 26 + C:0C0FH LINE# 27 + C:0C1EH LINE# 29 + C:0C1EH LINE# 30 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:0A92H LINE# 33 + C:0A94H LINE# 34 + C:0A94H LINE# 36 + C:0AA0H LINE# 37 + C:0AA0H LINE# 38 + C:0AA2H LINE# 39 + C:0AA6H LINE# 40 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 21 + + + C:0AA9H LINE# 41 + C:0AABH LINE# 42 + C:0AAFH LINE# 43 + C:0AB2H LINE# 44 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:0B06H LINE# 48 + C:0B06H LINE# 49 + C:0B06H LINE# 53 + C:0B12H LINE# 54 + C:0B12H LINE# 55 + C:0B14H LINE# 56 + C:0B18H LINE# 57 + C:0B1AH LINE# 58 + C:0B1DH LINE# 59 + C:0B20H LINE# 60 + C:0B20H LINE# 61 + C:0B23H LINE# 62 + C:0B23H LINE# 63 + C:0B26H LINE# 64 + C:0B29H LINE# 65 + C:0B2BH LINE# 66 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.5 SYMBOL initflag + ------- ENDDO + C:0AB9H LINE# 69 + C:0AB9H LINE# 70 + C:0AB9H LINE# 71 + C:0ABBH LINE# 73 + C:0ABDH LINE# 74 + C:0AC4H LINE# 75 + C:0AC6H LINE# 76 + C:0ACDH LINE# 77 + C:0ACFH LINE# 78 + C:0AD6H LINE# 79 + C:0ADAH LINE# 80 + C:0ADDH LINE# 82 + C:0ADFH LINE# 83 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:0980H LINE# 85 + C:0980H LINE# 86 + C:0980H LINE# 88 + C:0983H LINE# 89 + C:0988H LINE# 90 + C:098DH LINE# 91 + C:0994H LINE# 92 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 22 + + + C:0997H LINE# 93 + C:099CH LINE# 94 + C:09A1H LINE# 95 + C:09A6H LINE# 96 + C:09A9H LINE# 97 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ?C?FPMUL + C:000EH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:011EH PUBLIC ?C?FCASTC + C:0119H PUBLIC ?C?FCASTI + C:0114H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0152H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?CLDPTR + C:01D3H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CLDOPTR + C:01ECH PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:0219H PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?CSTOPTR + C:022BH PUBLIC ?C?CSTOPTR + ------- ENDMOD ?C?CSTOPTR + + ------- MODULE ?C?UIDIV + C:024DH PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:02A2H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_DA_WRITE?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/15/2024 16:51:10 PAGE 23 + + + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC + +Program Size: data=105.6 xdata=0 code=3313 +LINK/LOCATE RUN COMPLETE. 6 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/ExtDll.iex b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Init.obj b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Init.obj new file mode 100644 index 0000000..0b228d9 Binary files /dev/null and b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Init.obj differ diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Key.obj b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Key.obj new file mode 100644 index 0000000..3dcc4c5 Binary files /dev/null and b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Key.obj differ diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Led.obj b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Led.obj new file mode 100644 index 0000000..41bdf02 Binary files /dev/null and b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Led.obj differ diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Seg.obj b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Seg.obj new file mode 100644 index 0000000..8baaec3 Binary files /dev/null and b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/Seg.obj differ diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/ds1302.obj b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/ds1302.obj new file mode 100644 index 0000000..30bc673 Binary files /dev/null and b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/ds1302.obj differ diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/iic.obj b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/iic.obj new file mode 100644 index 0000000..ddda2d9 Binary files /dev/null and b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/iic.obj differ diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/main.obj b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/main.obj new file mode 100644 index 0000000..f358e27 Binary files /dev/null and b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/main.obj differ diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/onewire.obj b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/onewire.obj new file mode 100644 index 0000000..189b0c4 Binary files /dev/null and b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/onewire.obj differ diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan new file mode 100644 index 0000000..12aedd7 Binary files /dev/null and b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan differ diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan.build_log.htm b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..7466f51 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan.build_log.htm @@ -0,0 +1,55 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=NQZI6-DWZWI-JUT4W-QWG7Q-0NQ0X-JEAU7 + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: STCMON51.DLL V0, 1, 0, 19 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+F:\competition\ű\blue-bridge-cup-learning\Ŀ\\11 ʮһ_\ʮһ\User\zuolan.uvproj +Project File Date: 05/08/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling ds1302.c... +compiling iic.c... +compiling onewire.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?MOTOR?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_DA_WRITE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC +Program Size: data=105.6 xdata=0 code=3313 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 6 Warning(s). +
+ + diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan.hex b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan.hex new file mode 100644 index 0000000..4fb736d --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan.hex @@ -0,0 +1,263 @@ +:10081300084B000000000000000008330A0A0A0A1F +:100823000A0A0A0A08280000000000000000032545 +:0C083300103B32013B110141190153043C +:10071400AE48AF497C007D6312024DED4C7008FB7E +:100724007A007925120943AE48AF497C007DC7128F +:10073400024DED4C70267F01120B2CEF75F064A472 +:10074400FFAEF07C007D3312024D8E458F46C3EF21 +:100754009464EE940050028001C39201AE48AF4904 +:100764007C017DF312024DED4C7029120980E4FBEB +:10077400FA7920784112000E1201528E308F31E541 +:100784004175F00AA4D39531E5F095304003D38048 +:0507940001C3920022E8 +:1003FF00AE48AF497C007D0A12024DED4C600302FE +:10040F0005241207998F21E5246521FF5521F52237 +:10041F00E521F45FF523852124AF227E00EF6404EC +:10042F0070270547E5475401F547E4F53CF53DE5F1 +:10043F00476401700B853B4485414A8553328009DF +:10044F0085443B854A41853253E54714601B046060 +:10045F0003020524EF64054E6003020524053CE505 +:10046F003C75F0038485F03C22E5226405700B0592 +:10047F003DE53D75F0038485F03DE53D146038148E +:10048F00606324026003020524AF227E00EF64083C +:10049F00700FE54470047D178004E54414FD8D440E +:1004AF0022EF64094E706EE54464177003FF8004F9 +:1004BF00E54404FF8F4422AF227E00EF6408700FE3 +:1004CF00E54A70047D638004E54A14FD8D4A22EFEE +:1004DF0064094E7040E54A64637003FF8004E54A87 +:1004EF0004FF8F4A22AF227E00EF64087011E532BD +:1004FF00640370047D078004E53214FD8D3222EF12 +:10050F0064094E7010E532640770047F038004E5C0 +:05051F003204FF8F32E1 +:0105240022B4 +:1002B000AE48AF497C007D1412024DED4C60030244 +:1002C00003FEE5471470030203B30460030203FE58 +:1002D000E53C1460471470030203662402600302C5 +:1002E00003FEE4F52AF52EE52575F00A84F533E5DD +:1002F0002575F00A8485F03475350BE52675F00A0E +:1003000084F536E52675F00A8485F03775380BE5F7 +:100310002775F00A84F539E5270203EEE4F52A751E +:100320002E0175330C75370A75360A75350A753422 +:100330000AAE30AF31FC7D6412024D7C007D0A12A2 +:10034000024D8D38AE30AF317C007D0A12024D7CFB +:10035000007D0A12024D8D39AE30AF317C007D0A2E +:1003600012024D8D3A22752A01E4F52E75330D7572 +:10037000340AAE45AF46FC7D6412024D7C007D0A16 +:1003800012024D8D35AE45AF467C007D0A12024DFE +:100390007C007D0A12024D8D36AE45AF467C007D55 +:1003A0000A12024D8D3775390A75380AA201E433F5 +:1003B000F53A22E4F52AF52E75330EE53D04F534C1 +:1003C00075380A75370A75360A75350AE53D1460C1 +:1003D0001314602224027026E54475F00A84F5396E +:1003E000E544800AE54A75F00A84F539E54A75F076 +:0F03F0000A8485F03A2275390AE53204F53A227B +:1005EC00D3E53B9408748094805020C3E52594088F +:1005FC00748094805006E525953B502EE525B53B3F +:10060C0008E5267025E5276026801FC3E52594089C +:10061C00748094804014E525D3953B500DE525B5A9 +:10062C003B08E5267004E5276005754B018003E463 +:10063C00F54BA200E433F54CC3E54394B8E5429482 +:10064C000B500AE53F94B8E53E940B50047F0180B3 +:10065C00027F008F4D7F03EFC39408748094805009 +:10066C001A30010CEFB553047E0180067E00800227 +:0B067C007E00744B2FF8A6060F80DCF8 +:010687002250 +:100C8A00538E7F5389F0758A18758CFCC28DD28C6D +:050C9A00D2A9D2AF2237 +:03000B00020525C6 +:10052500C0E0C0F0C083C082C0D075D000C000C09C +:0D05350001C002C003C004C005C006C0071D +:100542000549E54970020548FFAE48BE0309BFE808 +:10055200067548007549000540E5405407F54030EE +:10056200011F753E00753F000543E54370020542D9 +:10057200C394B8E542940B402575420B7543B9808C +:100582001D754200754300053FE53F7002053EC3FD +:1005920094B8E53E940B4006753E0B753FB9743333 +:1005A2002540F8E6FD74282540F8E6FBAF40120925 +:1005B200F5756600C3E566940874809480501074E3 +:0F05C2004B2566F8E6FDAF661209BB056680E5BE +:1005D100D007D006D005D004D003D002D001D0007E +:0B05E100D0D0D082D083D0F0D0E03228 +:0E0CC80000007F237E337DB6DDFEDEFCDFFA0A +:010CD60022FB +:100B7500120C1F120C8A7B007A0079251208731259 +:100B85000980120CC81207141203FF1202B01205D5 +:030B9500EC80F2FF +:10083F000154000155FF0156000157FF01580001F7 +:08084F0059FF015A00015BFF93 +:1009BB00ED600FA8077401088002C333D8FC4254C2 +:1009CB00800EA8077401088002C333D8FCF452547C +:1009DB00E55465556013E554F4F580E5A0541F44C8 +:0909EB0080F5A053A01F855455AE +:0109F40022E0 +:100B980030020543564080035356BFE556655760FB +:100BA80011855680E5A0541F44A0F5A053A01F85C9 +:020BB80056578E +:010BBA002218 +:100BBB0030030543581080035358EFE558655960CF +:100BCB0011855880E5A0541F44A0F5A053A01F85A4 +:020BDB00585967 +:010BDD0022F5 +:100BDE00300405435A208003535ADFE55A655B60A3 +:100BEE0011855A80E5A0541F44A0F5A053A01F857F +:020BFE005A5B40 +:010C000022D1 +:100857000F08C0F9A4B0999282F88090FFBFC686AE +:0B0867008C08170102040810204080DC +:1009F5007580FFE5A0541F44E0F5A074172FF8E6B5 +:100A0500F580E5A0541F44C0F5A053A01F74082D20 +:100A1500F8E6F580EB600353807FE5A0541F44E0C2 +:060A2500F5A053A01F2202 +:10079900E4FFC2A9C2C4D2C2D2B5D2B420B3027F87 +:1007A9000420B2027F0520B1027F0620B0027F0734 +:1007B900D2C4C2C2D2B5D2B420B3027F0820B202D9 +:1007C9007F0920B1027F0A20B0027F0BD2C4D2C2B6 +:1007D900C2B5D2B420B3027F0C20B2027F0D20B182 +:1007E900027F0E20B0027F0FD2C4D2C2D2B5C2B4EA +:1007F90020B3027F1020B2027F1120B1027F1220A4 +:09080900B0027F13D2A975B0FF03 +:0108120022C3 +:100C1F007580FFE5A0541F4480F5A053A01FE4F595 +:0D0C2F0080E5A0541F44A0F5A053A01F2293 +:100C3C00E4FEEEC3940874809480500FC297EF13B7 +:0B0C4C0092A3EFC313FFD2970E80E7C6 +:010C5700227A +:100CB400C29300C29700D29300120C3CAF05120CF1 +:040CC4003CC2932279 +:10090600E4FDC29300C29700D29300120C3CE4FFB0 +:10091600EFC39408748094805011C297EDC313FD01 +:1009260030A303430580D2970F80E5C29300C29798 +:0C09360000D29700C2A300D2A300AF05BE +:010942002292 +:060873008B678A688969A9 +:10087900E4FD7F8E120CB4E4FCECC3940374809401 +:10088900805031AB67AA68A9698C8275830012010F +:10089900ECFF75F00A84C454F0FEEF75F00A84E5A4 +:1008A900F04EFBEC25E0FFC374849FFFAD03120CEF +:0B08B900B40C80C57D807F8E020CB463 +:060943008B678A688969D8 +:10094900E4FCECC3940374809480502AEC25E0FF06 +:10095900C374859FFF120906EFC4540F75F00AA4EA +:10096900FEEF540F2EAB67AA68A9698C82758300C4 +:0609790012022B0C80CCE1 +:01097F002255 +:040C5800D2A07F05A2 +:100C5C00000000000000000000000000000000AEDA +:060C6C00071FEE70EB22F1 +:0F0CD700D2A1120C58C2A17F05120C5CC2A02240 +:0C0CE600C2A1120C58D2A17F05020C5CC8 +:020A2B00AD0715 +:100A2D00E4FCECC39408748094805024C2A07F052C +:100A3D00120C5CED30E704D2A18002C2A17F051239 +:100A4D000C5CD2A0ED25E0FD7F05120C5C0C80D274 +:020A5D00C2A035 +:010A5F002274 +:100AE000E4FCECC39408748094805017120C58ED09 +:100AF00025E0FD30A103430501C2A07F05120C5C77 +:050B00000C80DFAF05D1 +:010B050022CD +:100B5100AB05120CD77FA0120A2B120B63AF031245 +:020B61000A2B5D +:100B6300120C58A2A1E433FDC2A07F05120C5CAFA6 +:010B7300057C +:010B7400225E +:100C7200C2A0EF24FF92A17F05120C5C120C58C295 +:080C8200A0D2A17F05020C5C69 +:020B2C00AB0715 +:100B2E00120CD77F90120B58120CD77F91120A2BF2 +:100B3E00120B63120AE0AD077F01120C72120CE663 +:020B4E00AF05F1 +:010B50002282 +:100C9F00AB07120CD77F90120A2B120B637F4112F6 +:050CAF000B58020CE6E9 +:100A60008B5C8A5D895E120B51AF601560EF601F71 +:100A7000AB5C055EE55EAA5D7002055D14F91201CE +:100A8000D3FF120A2B120B637FC8120C5C80DA02B0 +:020A90000CE672 +:1008C4008B618A628963120B51120CD77FA1120AC1 +:1008D4002B120B63AF651565EF6024120AE0AB6160 +:1008E4000563E563AA627002056214F9EF12021946 +:1008F400E5656004E4FF80027F01120C7280D5027A +:020904000CE6FF +:0600030000007F09DFFE92 +:0100090022D4 +:040C01007F057E00ED +:100C0500EF1FAA0670011E4A600FE4FDEDC3940CA8 +:090C15007480948050EA0D80F314 +:010C1E0022B3 +:020A9200A907B2 +:100A9400E4FBEBC39408748094805012C294E9136D +:100AA4009294120C01D294E9C313F90B80E47F05EC +:050AB4007E00020C05AC +:100B0600E4FBEBC39408748094805017C294ECC342 +:100B160013FCD294120003309403430480120C0198 +:050B26000B80DFAF04AD +:010B2B0022A7 +:100AB900C205D2947F0C7E00120C05C2947F507E31 +:100AC90000120C05D2947F0A7E00120C05A29492A2 +:060AD90005120C01A2054C +:010ADF0022F4 +:10098000120AB97FCC120A927F44120A927FC87E63 +:1009900000120C05120AB97FCC120A927FBE120A0D +:1009A00092120B06A907120B06EFAD01FCEC120127 +:0B09B00019E4FBFA7980783D02000E8C +:10000E00EC4D6011E8497017ED33EC3304600DE4EC +:10001E00FCFFFEFD22E933E8330470F80201BE1244 +:10002E00018958046009E4CC248150062850090245 +:10003E0001C82840030201C5C0E0EB4A7044B980F4 +:10004E0006D0E0FB0201B4EF4E701CBD8008EBFF42 +:10005E00EAFEE9FD80EBE98DF0A4FEE5F00200F783 +:10006E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89CD +:10007E00F0A42EFFE435F0CD89F0A42DFEE435F08A +:10008E008067EF4E7005BD80D780C3EF8BF0A4ACB8 +:10009E00F0EE8BF0A42CFCE435F0F8EF8AF0A42CF3 +:1000AE00E5F038FCE433CB8DF0A42CFCE5F03BF806 +:1000BE00EE8AF0A42CFCE5F038F8E433CF89F0A4F6 +:1000CE002CFCE5F038CF3400CE89F0A42FFFE5F0FC +:1000DE003EFEE433C98DF0A42EFEE5F039CD8AF054 +:1000EE00A42FFFE5F03EFEE43DFD33D0E0FB5007CC +:1000FE000BBB000F0201C8EC2CFCEF33FFEE33FEFE +:06010E00ED33FD0201A02B +:1001140075F020800E75F010800575F0087D007E66 +:10012400007F003392D530D5031202A2EC33401085 +:10013400EF33FFEE33FEED33FDEC33FCD5F0ED226F +:0E014400E5F0247EA2D513CC92E7CDCEFF22AB +:10015200EDD2E7CD33EC3392D524814006E4FFFEA5 +:10016200FDFC22FCE4CFCECDCC24E0501174FF8004 +:10017200EDC3CC13CCCD13CDCE13CECF13CF0470A1 +:07018200F030D5DE0202A2FD +:10018900E9D2E7C933E833F892D5EDD2E7CD33ECBC +:0701990033FC5002B2D52235 +:1001A000EC30E7100FBF000C0EBE00080DBD0004C0 +:1001B0000BEB6014A2D5EB13FCED92E7FD2274FF6C +:1001C000FCFDFEFF22E480F8A2D574FF13FC7D80C5 +:0301D000E480EFD9 +:030000000206886D +:0C068800787FE4F6D8FD7581690206CF8A +:1001D300BB010689828A83E0225002E722BBFE022A +:0901E300E32289828A83E493225D +:1001EC00BB010CE58229F582E5833AF583E02250C8 +:1001FC0006E92582F8E622BBFE06E92582F8E22212 +:0D020C00E58229F582E5833AF583E493222B +:10021900BB010689828A83F0225002F722BBFE01C4 +:02022900F322BE +:10022B00F8BB010DE58229F582E5833AF583E8F009 +:10023B00225006E92582C8F622BBFE05E92582C8B5 +:02024B00F2229D +:10024D00BC000BBE0029EF8DF084FFADF022E4CC95 +:10025D00F875F008EF2FFFEE33FEEC33FCEE9DEC5E +:10026D00984005FCEE9DFE0FD5F0E9E4CEFD22EDA4 +:10027D00F8F5F0EE8420D21CFEADF075F008EF2FEE +:10028D00FFED33FD4007985006D5F0F222C398FDDF +:05029D000FD5F0EA227C +:0E02A200C3E49FFFE49EFEE49DFDE49CFC226D +:10069400020B75E493A3F8E493A34003F68001F2FC +:1006A40008DFF48029E493A3F85407240CC8C33367 +:1006B400C4540F4420C8834004F456800146F6DF36 +:1006C400E4800B0102040810204080900813E47EAB +:1006D400019360BCA3FF543F30E509541FFEE4932B +:1006E400A360010ECF54C025E060A840B8E493A3F2 +:1006F400FAE493A3F8E493A3C8C582C8CAC583CA1D +:10070400F0A3C8C582C8CAC583CADFE9DEE780BED4 +:010872000085 +:00000001FF diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan.lnp b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan.lnp new file mode 100644 index 0000000..770c23d --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/Objects/zuolan.lnp @@ -0,0 +1,10 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\ds1302.obj", +".\Objects\iic.obj", +".\Objects\onewire.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/main.c b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/main.c new file mode 100644 index 0000000..f1c1cbd --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/main.c @@ -0,0 +1,280 @@ +#include "main.h" + +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ʱ䷽ */ +uchar ucRtc[3] = {16, 59, 50}; // ʼʱ16:59:50 + +/* ʱ䷽ */ +uint time_all_1s; +uint time_light_3s; +uint time_dark_3s; +/* */ +uchar Seg_show_mode; // 0 1 +uchar Data_show_mode; // 0 ʱ 1 ¶ 2 ⰵ״̬ +uchar Para_show_mode; // 0 ʱ 1 ¶ 2 ָʾ +/* */ +uint T_value_10x; // ¶ȵ10 +uint V_value_100x; // ѹ100 +uchar Para_hour = 17; // Сʱ(0-23) +uchar Para_T = 25; // ¶Ȳ(0-99) +uchar Para_Led = 3; // ָʾƲ ʵ(3-7) -> ʾ (4-8) +uchar Para_hour_temp; // Сʱ(0-23) +uchar Para_T_temp; // ¶Ȳ(0-99) +uchar Para_Led_temp; // ָʾƲ ʵ(3-7) -> ʾ (4-8) + +/* ж */ +bit dark_flag; // 0 1 +bit cold_flag; // 0 1 ڲ +/* ݴ */ +void Data_Proc() { + if (time_all_1s % 99 == 0) { + // ʱȡ + Read_Rtc(ucRtc); + } + if (time_all_1s % 199 == 0) { + // ADȡ + V_value_100x = Ad_Read(0x01) * 100 / 51; + // ѹС1VʱжΪ + dark_flag = (V_value_100x < 100); + } + if (time_all_1s % 499 == 0) { + // ¶ȶȡ + T_value_10x = rd_temperature() * 10; + cold_flag = (Para_T * 10 > T_value_10x); + } +} +/* ̴ */ +void Key_Proc() { + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (time_all_1s % 10) return; + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 4) { + Seg_show_mode = (++Seg_show_mode) % 2; + Data_show_mode = 0; + Para_show_mode = 0; + // ڽ棬ȫֵȥ + if (Seg_show_mode == 1) { + Para_hour_temp = Para_hour; + Para_T_temp = Para_T; + Para_Led_temp = Para_Led; + } + // ڽݽ棬ȫֵȥ + else { + Para_hour = Para_hour_temp; + Para_T = Para_T_temp; + Para_Led = Para_Led_temp; + } + } + switch (Seg_show_mode) { + case 0: + /* */ + if (Key_Down == 5) Data_show_mode = (++Data_show_mode) % 3; + break; + + case 1: + /* */ + if (Key_Down == 5) Para_show_mode = (++Para_show_mode) % 3; + switch (Para_show_mode) { + case 0: + /* ʱ */ + if (Key_Down == 8) + Para_hour_temp = (Para_hour_temp == 0) ? 23 : Para_hour_temp - 1; + else if (Key_Down == 9) + Para_hour_temp = (Para_hour_temp == 23) ? 0 : Para_hour_temp + 1; + break; + case 1: + /* ¶ */ + if (Key_Down == 8) + Para_T_temp = (Para_T_temp == 0) ? 99 : Para_T_temp - 1; + else if (Key_Down == 9) + Para_T_temp = (Para_T_temp == 99) ? 0 : Para_T_temp + 1; + break; + + case 2: + /* Ledָʾ*/ + if (Key_Down == 8) + Para_Led_temp = (Para_Led_temp == 3) ? 7 : Para_Led_temp - 1; + else if (Key_Down == 9) + Para_Led_temp = (Para_Led_temp == 7) ? 3 : Para_Led_temp + 1; + break; + } + break; + } +} +/* ܴ */ +void Seg_Proc() { + if (time_all_1s % 20) return; + switch (Seg_show_mode) { + case 0: + /* */ + switch (Data_show_mode) { + case 0: + /* ʱ */ + Seg_Point[2] = 0; + Seg_Point[6] = 0; + Seg_Buf[0] = ucRtc[0] / 10; + Seg_Buf[1] = ucRtc[0] % 10; + Seg_Buf[2] = 11; //- + Seg_Buf[3] = ucRtc[1] / 10; + Seg_Buf[4] = ucRtc[1] % 10; + Seg_Buf[5] = 11; //- + Seg_Buf[6] = ucRtc[2] / 10; + Seg_Buf[7] = ucRtc[2] % 10; + break; + + case 1: + /* ¶ */ + Seg_Point[2] = 0; + Seg_Point[6] = 1; + Seg_Buf[0] = 12; // C + Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + Seg_Buf[5] = T_value_10x / 100 % 10; + Seg_Buf[6] = T_value_10x / 10 % 10; + Seg_Buf[7] = T_value_10x % 10; + break; + + case 2: + /* ⰵ״̬ */ + Seg_Point[2] = 1; + Seg_Point[6] = 0; + Seg_Buf[0] = 13; // E + Seg_Buf[1] = 10; + Seg_Buf[2] = V_value_100x / 100 % 10; + Seg_Buf[3] = V_value_100x / 10 % 10; + Seg_Buf[4] = V_value_100x % 10; + Seg_Buf[5] = Seg_Buf[6] = 10; + Seg_Buf[7] = dark_flag; + break; + } + break; + + case 1: + /* */ + Seg_Point[2] = 0; + Seg_Point[6] = 0; + Seg_Buf[0] = 14; // P + Seg_Buf[1] = Para_show_mode + 1; + Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + switch (Para_show_mode) { + case 0: + /* ʱ */ + Seg_Buf[6] = Para_hour_temp / 10; + Seg_Buf[7] = Para_hour_temp % 10; + break; + + case 1: + /* ¶ */ + Seg_Buf[6] = Para_T_temp / 10; + Seg_Buf[7] = Para_T_temp % 10; + break; + + case 2: + /* ָʾ */ + Seg_Buf[6] = 10; + Seg_Buf[7] = Para_Led_temp + 1; + break; + } + break; + } +} + +/* LED */ +void Led_Proc() { + uchar i; + if (Para_hour <= 8) { + // СʱС8ҴڲСʱڲDz + if ((ucRtc[0] < 8 && ucRtc[0] > Para_hour) || + !(ucRtc[0] == Para_hour && ucRtc[1] == 0 && ucRtc[2] == 0)) + ucLed[0] = 1; + else + ucLed[0] = 0; + } else { + // СʱڲСʱС8Сʱڲ + if (ucRtc[0] < 8 || ucRtc[0] > Para_hour || + !(ucRtc[0] == Para_hour && ucRtc[1] == 0 && ucRtc[2] == 0)) + ucLed[0] = 1; + else + ucLed[0] = 0; + } + ucLed[1] = cold_flag; + ucLed[2] = (time_dark_3s >= 3000 || time_light_3s <= 3000); + for (i = 3; i < 8; i++) { + ucLed[i] = (dark_flag) ? (i == Para_Led) : 0; + } +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 { + uchar i; + if (++time_all_1s == 1000) time_all_1s = 0; + Seg_Pos = (++Seg_Pos) % 8; + if (dark_flag) { + // ںڰ״̬ʼʱֹͣʱҽڰʱ + time_light_3s = 0; + if (++time_dark_3s >= 3000) { + time_dark_3s = 3001; + } + } else { + // ڹ״̬ʼʱֹͣڰʱҽʱ + time_dark_3s = 0; + if (++time_light_3s >= 3000) { + time_light_3s = 3001; + } + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + for (i = 0; i < 8; i++) { + Led_Disp(i, ucLed[i]); + } +} + +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do { + do { + while (--k); + } while (--j); + } while (--i); +} +void main() { + System_Init(); + Timer0_Init(); + Set_Rtc(ucRtc); + rd_temperature(); + Delay750ms(); + while (1) { + Data_Proc(); + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/main.h b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/main.h new file mode 100644 index 0000000..20c6857 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/main.h @@ -0,0 +1,12 @@ +#include "Init.h" +#include "Key.h" +#include "Led.h" +#include "STC15F2K60S2.H" +#include "Seg.h" +#include "ds1302.h" +#include "iic.h" +#include "intrins.h" +#include "onewire.h" +#include "stdio.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvgui.haze b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvgui.haze new file mode 100644 index 0000000..828d25c --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvgui.haze @@ -0,0 +1,1387 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 9 + 9 + 1543 + 823 + + + + 0 + + 539 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000400000002000000010000004C433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675C64656D6F5F7A756F6C616E5F6F6C645C4472697665725C556172742E680000000006556172742E6800000000BCA8E100FFFFFFFF25443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000F0A0A100FFFFFFFF4A433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675C64656D6F5F7A756F6C616E5F6F6C645C557365725C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF4C433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675C64656D6F5F7A756F6C616E5F6F6C645C4472697665725C556172742E630000000006556172742E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000094010000660000000006000036020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100006600000070040000D3000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000370200000006000006030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000060300000006000019030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100006600000070040000D3000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200006600000070040000B7010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100001F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000009001000036020000000000004F000000900100001F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000A701000070040000280200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000001F020000000600002302000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000003A020000000600001D030000000000002302000000060000060300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2076 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000094B65795F636F756E7496000000000000000400094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E676500000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 2 + + ..\Driver\Uart.h + 20 + 1 + 1 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 12 + 45 + 55 + 1 + + 0 + + + ..\Driver\Uart.c + 0 + 1 + 1 + 1 + + 0 + + + + +
diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvgui.zuolan b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvgui.zuolan new file mode 100644 index 0000000..9570e26 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvgui.zuolan @@ -0,0 +1,2610 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 834 288 + + + 204 + Performance Analyzer + 1122 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 2 + 3 + + -32000 + -32024 + + + -1 + -1 + + + 23 + 26 + 1178 + 789 + + + + 0 + + 424 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000000000000100000066463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313120B5DACAAED2BBBDECB9FAC8FC5FD7F3E1B05CB5DACAAED2BBBDECB9FAC8FC5C557365725C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF67463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313120B5DACAAED2BBBDECB9FAC8FC5FD7F3E1B05CB5DACAAED2BBBDECB9FAC8FC5C4472697665725C4B45592E4300000000054B45592E4300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E00000000060000A7020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000B7000000 + + + 16 + 940100007E00000070040000E6000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005F020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005F020000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005F020000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005F020000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000009002000000060000E4020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000007B01000070040000F7010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000093020000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005F020000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000093020000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000093020000FD050000CB020000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000920100006D040000DE010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E402000000060000F7020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000B700000070040000BB000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000E6000000940100004F00000070040000B70000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008B010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000BA010000E00200004F000000700400008B0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000078020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E00000090010000A7020000000000004F00000090010000780200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000077010000700400007B01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000AA0100007004000026020000000000007B01000070040000F701000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF380200007B0100003C020000F701000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000078020000000600007C020000010000000100001004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000AB0200000006000013030000000000007C02000000060000E40200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2013 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000003503331960000000000000001000350333100000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020000001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000000060000B7000000 + + + 16 + 940100007E00000000060000E6000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000C6010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000C6010000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1936 + 1936 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000C6010000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000C6010000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000E301000000030000E4020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 940100006300000000060000B7000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000072010000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000C6010000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 3C0000006B00000074020000D3000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A60100006D040000DE010000 + + + 16 + 3C0000006B0000001F0100000D020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 07030000FA010000FD050000CB020000 + + + 16 + 3C0000006B000000CC010000FB010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E402000000060000F7020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2618 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF94010000B700000000060000BB000000010000000100001004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000940100007E00000000060000E6000000940100004F00000000060000B70000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008B010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000BA010000E00200004F000000700400008B0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000DF010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100000E020000000000004F00000090010000DF0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000DF01000000060000E301000001000000010000100400000001000000A4FEFFFF5F00000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB090000018000800000010000000403000012020000000600001303000004030000E301000000060000E402000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFF00030000E301000004030000E402000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000008B010000700400008F010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000000000000000000BE0100007004000026020000000000008F01000070040000F70100000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2013 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000003503331960000000000000001000350333100000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 0 + + .\main.c + 3 + 200 + 213 + 1 + + 0 + + + ..\Driver\Key.c + 0 + 7 + 12 + 1 + + 0 + + + + +
diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvopt b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvopt new file mode 100644 index 0000000..c9adefd --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvopt @@ -0,0 +1,322 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + + + + + + + + + + + BIN\STCMON51.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 + STCMON51 + -S6 -B115200 -O0 + + + + + 0 + 0 + 198 + 1 +
-16775659
+ 0 + 0 + 0 + 0 + 0 + 1 + MAIN.C + + +
+
+ + + 0 + 1 + ucRtc + + + 1 + 1 + temp1 + + + 2 + 1 + temp2 + + + 3 + 1 + Para_hour + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + +
+
+ + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\ds1302.c + ds1302.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + +
diff --git a/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvproj b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvproj new file mode 100644 index 0000000..a00e141 --- /dev/null +++ b/题目/真题/11 第十一届国赛_左岚/第十一届国赛/User/zuolan.uvproj @@ -0,0 +1,415 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 10 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + ds1302.c + 1 + ..\Driver\ds1302.c + + + iic.c + 1 + ..\Driver\iic.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + + + + + +
diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第11届省赛第一次-ADC采集与AT24C02.pdf b/题目/真题/11 第十一届省赛_左岚/第一套/第11届省赛第一次-ADC采集与AT24C02.pdf new file mode 100644 index 0000000..0bcd2b6 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第11届省赛第一次-ADC采集与AT24C02.pdf differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛.jpg b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛.jpg new file mode 100644 index 0000000..4a97723 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛.jpg differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/.vscode/settings.json b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/.vscode/settings.json new file mode 100644 index 0000000..04260f9 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "stc15f2k60s2.h": "c" + } +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Init.c b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Init.h b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Key.c b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Key.c new file mode 100644 index 0000000..dbf9fe3 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Key.c @@ -0,0 +1,43 @@ +#include + +unsigned char Key_Read() +{ + unsigned char temp = 0; + //1 + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if(P33 == 0) temp = 4; + if(P32 == 0) temp = 5; + if(P31 == 0) temp = 6; + if(P30 == 0) temp = 7; + //2 + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if(P33 == 0) temp = 8; + if(P32 == 0) temp = 9; + if(P31 == 0) temp = 10; + if(P30 == 0) temp = 11; + //3 + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if(P33 == 0) temp = 12; + if(P32 == 0) temp = 13; + if(P31 == 0) temp = 14; + if(P30 == 0) temp = 15; + //4 + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if(P33 == 0) temp = 16; + if(P32 == 0) temp = 17; + if(P31 == 0) temp = 18; + if(P30 == 0) temp = 19; + return temp; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Key.h b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Key.h new file mode 100644 index 0000000..898c524 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Key.h @@ -0,0 +1,3 @@ +#include + +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Led.c b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Led.c new file mode 100644 index 0000000..899efd6 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Led.c @@ -0,0 +1,21 @@ +#include +//ַ0-7Ƿʹ +void Led_Disp(unsigned char addr,enable) +{ + //ֵ֤Ϊı + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + //ĵǰ״̬ + if(enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + //ǰ״̬֮ǰ״̬ͬвled + if(temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Led.h b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Led.h new file mode 100644 index 0000000..bda5b20 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Led.h @@ -0,0 +1,3 @@ +#include + +void Led_Disp(unsigned char addr,enable); diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Seg.c b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Seg.c new file mode 100644 index 0000000..11803c3 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Seg.c @@ -0,0 +1,22 @@ +#include +// ѡ 0 1 2 3 4 5 6 7 8 9 U P N +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0xc1, 0x8c, 0xc8}; +// λѡ 2^0,2^1,2^2,2^3,2^4,2^52^6,2^7һ˸ +unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + +void Seg_Disp(unsigned char wela, dula, point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Seg.h b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Seg.h new file mode 100644 index 0000000..3c5c898 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/Seg.h @@ -0,0 +1,3 @@ +#include + +void Seg_Disp(unsigned char wela,dula,point); \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/iic.c b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/iic.c new file mode 100644 index 0000000..fe27af6 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/iic.c @@ -0,0 +1,180 @@ +/* + ˵: IIC + : Keil uVision 4.10 + Ӳ: CT107Ƭۺʵѵƽ̨ 805112MHz + : 2011-8-9 +*/ + +#include "iic.h" + +#include "intrins.h" + +#define DELAY_TIME 5 + +#define Photo_Res_Channel 0x41 +#define Adj_Res_Channel 0x43 + +// Ŷ +sbit SDA = P2 ^ 1; /* */ +sbit SCL = P2 ^ 0; /* ʱ */ + +void IIC_Delay(unsigned char i) +{ + do + { + _nop_(); + } while (i--); +} + +// +void IIC_Start(void) +{ + SDA = 1; + SCL = 1; + IIC_Delay(DELAY_TIME); + SDA = 0; + IIC_Delay(DELAY_TIME); + SCL = 0; +} + +// ֹͣ +void IIC_Stop(void) +{ + SDA = 0; + SCL = 1; + IIC_Delay(DELAY_TIME); + SDA = 1; + IIC_Delay(DELAY_TIME); +} + +// Ӧ +void IIC_SendAck(bit ackbit) +{ + SCL = 0; + SDA = ackbit; // 0Ӧ1Ӧ + IIC_Delay(DELAY_TIME); + SCL = 1; + IIC_Delay(DELAY_TIME); + SCL = 0; + SDA = 1; + IIC_Delay(DELAY_TIME); +} + +// ȴӦ +bit IIC_WaitAck(void) +{ + bit ackbit; + + SCL = 1; + IIC_Delay(DELAY_TIME); + ackbit = SDA; + SCL = 0; + IIC_Delay(DELAY_TIME); + return ackbit; +} + +// ͨI2C߷ +void IIC_SendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + SCL = 0; + IIC_Delay(DELAY_TIME); + if (byt & 0x80) + SDA = 1; + else + SDA = 0; + IIC_Delay(DELAY_TIME); + SCL = 1; + byt <<= 1; + IIC_Delay(DELAY_TIME); + } + SCL = 0; +} + +// I2CϽ +unsigned char IIC_RecByte(void) +{ + unsigned char i, da; + for (i = 0; i < 8; i++) + { + SCL = 1; + IIC_Delay(DELAY_TIME); + da <<= 1; + if (SDA) + da |= 1; + SCL = 0; + IIC_Delay(DELAY_TIME); + } + return da; +} + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + IIC_Start(); + IIC_SendByte(0x90); + IIC_WaitAck(); + IIC_SendByte(addr); + IIC_WaitAck(); + IIC_Start(); + IIC_SendByte(0x91); + IIC_WaitAck(); + temp = IIC_RecByte(); + IIC_SendAck(1); + IIC_Stop(); + return temp; +} + +// дEEPROM +// ڲҪдַдĵַ(Ϊ8ı)д +// ֵ +// ܣEERPOMijַдַضַ +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + IIC_Start(); // Ϳź + IIC_SendByte(0xA0); // ѡEEPROMоƬȷдģʽ + IIC_WaitAck(); // ȴEEPROM + + IIC_SendByte(addr); // дҪ洢ݵַ + IIC_WaitAck(); // ȴEEPROM + + while (num--) + { + IIC_SendByte(*EEPROM_String++); // ҪдϢд + IIC_WaitAck(); // ȴEEPROM + IIC_Delay(200); + } + IIC_Stop(); // ֹͣ +} + +// EEPROM +// ڲҪ洢ַȡĵַ(Ϊ8ı)ȡ +// ֵ +// ܣȡEERPOMijַеݣַС +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + IIC_Start(); // Ϳź + IIC_SendByte(0xA0); // ѡEEPROMоƬȷдģʽ + IIC_WaitAck(); // ȴEEPROM + + IIC_SendByte(addr); // дҪȡݵַ + IIC_WaitAck(); // ȴEEPROM + + IIC_Start(); // Ϳź + IIC_SendByte(0xA1); // ѡEEPROMоƬȷģʽ + IIC_WaitAck(); // ȴEEPROM + + while (num--) + { + *EEPROM_String++ = IIC_RecByte(); // ҪдϢд + if (num) + IIC_SendAck(0); // Ӧ + else + IIC_SendAck(1); // Ӧ + } + + IIC_Stop(); // ֹͣ +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/iic.h b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/iic.h new file mode 100644 index 0000000..c9cb061 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/iic.h @@ -0,0 +1,15 @@ +#include "STC15F2K60S2.H" + +unsigned char Ad_Read(unsigned char addr); + +// 函数名:写EEPROM函数 +// 入口参数:需要写入的字符串,写入的地址(务必为8的倍数),写入数量 +// 返回值:无 +// 函数功能:向EERPOM的某个地址写入字符串中特定数量的字符。 +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); + +// 函数名:读EEPROM函数 +// 入口参数:读到的数据需要存储的字符串,读取的地址(务必为8的倍数),读取的数量 +// 返回值:无 +// 函数功能:读取EERPOM的某个地址中的数据,并存放在字符串数组中。 +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/onewire.c b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/onewire.c new file mode 100644 index 0000000..97d39c4 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/onewire.c @@ -0,0 +1,77 @@ +#include "onewire.h" +#include "reg52.h" + +sbit DQ = P1 ^ 4; + +// ڲʱ +void Delay_OneWire(unsigned int t) +{ + t *= 12; + while (t--) + ; +} + +// д +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; // һһд + } + Delay_OneWire(5); +} + +// ߶ +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + if (DQ) + { + dat |= 0x80; // һһȡ + } + Delay_OneWire(5); + } + return dat; +} + +// DS18B20ʼ +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); // ʼ + Write_DS18B20(0xcc); // ROM + Write_DS18B20(0x44); // ¶ת + init_ds18b20(); // ʼ + Write_DS18B20(0xcc); // ROM + Write_DS18B20(0xbe); // ȡ¶ + low = Read_DS18B20(); // λ + high = Read_DS18B20(); // λ + return ((high << 8) | low) / 16.0; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/onewire.h b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/onewire.h new file mode 100644 index 0000000..8df55c8 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/Driver/onewire.h @@ -0,0 +1,5 @@ +#ifndef __ONEWIRE_H +#define __ONEWIRE_H + +float rd_temperature(void); +#endif diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Init.lst b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Init.lst new file mode 100644 index 0000000..491fa0e --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 03/05/2024 08:31:45 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Key.lst b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Key.lst new file mode 100644 index 0000000..c82a788 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Key.lst @@ -0,0 +1,69 @@ +C51 COMPILER V9.59.0.0 KEY 03/05/2024 08:31:45 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include + 2 + 3 unsigned char Key_Read() + 4 { + 5 1 unsigned char temp = 0; + 6 1 //1 + 7 1 P44 = 0; + 8 1 P42 = 1; + 9 1 P35 = 1; + 10 1 P34 = 1; + 11 1 if(P33 == 0) temp = 4; + 12 1 if(P32 == 0) temp = 5; + 13 1 if(P31 == 0) temp = 6; + 14 1 if(P30 == 0) temp = 7; + 15 1 //2 + 16 1 P44 = 1; + 17 1 P42 = 0; + 18 1 P35 = 1; + 19 1 P34 = 1; + 20 1 if(P33 == 0) temp = 8; + 21 1 if(P32 == 0) temp = 9; + 22 1 if(P31 == 0) temp = 10; + 23 1 if(P30 == 0) temp = 11; + 24 1 //3 + 25 1 P44 = 1; + 26 1 P42 = 1; + 27 1 P35 = 0; + 28 1 P34 = 1; + 29 1 if(P33 == 0) temp = 12; + 30 1 if(P32 == 0) temp = 13; + 31 1 if(P31 == 0) temp = 14; + 32 1 if(P30 == 0) temp = 15; + 33 1 //4 + 34 1 P44 = 1; + 35 1 P42 = 1; + 36 1 P35 = 1; + 37 1 P34 = 0; + 38 1 if(P33 == 0) temp = 16; + 39 1 if(P32 == 0) temp = 17; + 40 1 if(P31 == 0) temp = 18; + 41 1 if(P30 == 0) temp = 19; + 42 1 return temp; + 43 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 115 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + C51 COMPILER V9.59.0.0 KEY 03/05/2024 08:31:45 PAGE 2 + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Led.lst b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Led.lst new file mode 100644 index 0000000..30562b1 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Led.lst @@ -0,0 +1,45 @@ +C51 COMPILER V9.59.0.0 LED 03/05/2024 08:31:45 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include + 2 //ַ0-7Ƿʹ + 3 void Led_Disp(unsigned char addr,enable) + 4 { + 5 1 //ֵ֤Ϊı + 6 1 static unsigned char temp = 0x00; + 7 1 static unsigned char temp_old = 0xff; + 8 1 //ĵǰ״̬ + 9 1 if(enable) + 10 1 temp |= 0x01 << addr; + 11 1 else + 12 1 temp &= ~(0x01 << addr); + 13 1 //ǰ״̬֮ǰ״̬ͬвled + 14 1 if(temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 59 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 2 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Seg.lst b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Seg.lst new file mode 100644 index 0000000..751d0b4 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Seg.lst @@ -0,0 +1,46 @@ +C51 COMPILER V9.59.0.0 SEG 03/05/2024 08:31:45 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 U P N + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0xc1, 0x8c, 0xc8}; + 5 // λѡ 2^0,2^1,2^2,2^3,2^4,2^52^6,2^7һ˸ + 6 unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 + 8 void Seg_Disp(unsigned char wela, dula, point) + 9 { + 10 1 // ֶ + 11 1 P0 = 0xff; + 12 1 P2 = P2 & 0x1f | 0xe0; + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 P0 = seg_dula[dula]; + 18 1 if (point) + 19 1 P0 &= 0x7f; + 20 1 P2 = P2 & 0x1f | 0xe0; + 21 1 P2 &= 0x1f; + 22 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 55 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 22 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Uart.lst b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Uart.lst new file mode 100644 index 0000000..6f7096a --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/Uart.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 UART 02/04/2024 22:39:05 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include + 2 + 3 /* 串口初始化函数 */ + 4 void UartInit(void) // 9600bps@12.000MHz + 5 { + 6 1 SCON = 0x50; // 8位数据,可变波特率 + 7 1 AUXR |= 0x01; // 串口1选择定时器2为波特率发生器 + 8 1 AUXR |= 0x04; // 定时器时钟1T模式 + 9 1 T2L = 0xC7; // 设置定时初始值 + 10 1 T2H = 0xFE; // 设置定时初始值 + 11 1 AUXR |= 0x10; // 定时器2开始计时 + 12 1 ES = 1; + 13 1 EA = 1; + 14 1 } + 15 + 16 extern char putchar(char ch) + 17 { + 18 1 SBUF = ch; + 19 1 while (TI == 0) + 20 1 ; + 21 1 TI = 0; + 22 1 return ch; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/ds1302.lst b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/ds1302.lst new file mode 100644 index 0000000..63179ca --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/ds1302.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 DS1302 03/05/2024 08:30:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 #include "ds1302.h" + 2 #include + 3 #include + 4 + 5 sbit SCK = P1 ^ 7; + 6 sbit SDA = P2 ^ 3; + 7 sbit RST = P1 ^ 3; + 8 + 9 // дֽ + 10 void Write_Ds1302(unsigned char temp) + 11 { + 12 1 unsigned char i; + 13 1 for (i = 0; i < 8; i++) + 14 1 { + 15 2 SCK = 0; + 16 2 SDA = temp & 0x01; + 17 2 temp >>= 1; // һλһλд + 18 2 SCK = 1; + 19 2 } + 20 1 } + 21 + 22 // DS1302Ĵд + 23 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 24 { + 25 1 RST = 0; + 26 1 _nop_(); + 27 1 SCK = 0; + 28 1 _nop_(); + 29 1 RST = 1; + 30 1 _nop_(); + 31 1 Write_Ds1302(address); + 32 1 Write_Ds1302(dat); + 33 1 RST = 0; + 34 1 } + 35 + 36 // DS1302Ĵ + 37 unsigned char Read_Ds1302_Byte(unsigned char address) + 38 { + 39 1 unsigned char i, temp = 0x00; + 40 1 RST = 0; + 41 1 _nop_(); + 42 1 SCK = 0; + 43 1 _nop_(); + 44 1 RST = 1; + 45 1 _nop_(); + 46 1 Write_Ds1302(address); + 47 1 for (i = 0; i < 8; i++) + 48 1 { + 49 2 SCK = 0; + 50 2 temp >>= 1; + 51 2 if (SDA) + 52 2 temp |= 0x80; + 53 2 SCK = 1; + 54 2 } + C51 COMPILER V9.59.0.0 DS1302 03/05/2024 08:30:34 PAGE 2 + + 55 1 RST = 0; + 56 1 _nop_(); + 57 1 SCK = 0; + 58 1 _nop_(); + 59 1 SCK = 1; + 60 1 _nop_(); + 61 1 SDA = 0; + 62 1 _nop_(); + 63 1 SDA = 1; + 64 1 _nop_(); + 65 1 return (temp); + 66 1 } + 67 + 68 void Set_Rtc(unsigned char *ucRtc) + 69 { + 70 1 unsigned char i; + 71 1 Write_Ds1302_Byte(0x8e, 0x00); + 72 1 for (i = 0; i < 3; i++) + 73 1 { + 74 2 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 75 2 } + 76 1 Write_Ds1302_Byte(0x8e, 0x80); + 77 1 } + 78 + 79 void Read_Rtc(unsigned char *ucRtc) + 80 { + 81 1 unsigned char i; + 82 1 for (i = 0; i < 3; i++) + 83 1 { + 84 2 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 85 2 } + 86 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/iic.lst b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/iic.lst new file mode 100644 index 0000000..160d956 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/iic.lst @@ -0,0 +1,210 @@ +C51 COMPILER V9.59.0.0 IIC 03/05/2024 08:31:45 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* + 2 ˵: IIC + 3 : Keil uVision 4.10 + 4 Ӳ: CT107Ƭۺʵѵƽ̨ 805112MHz + 5 : 2011-8-9 + 6 */ + 7 + 8 #include "iic.h" + 9 + 10 #include "intrins.h" + 11 + 12 #define DELAY_TIME 5 + 13 + 14 #define Photo_Res_Channel 0x41 + 15 #define Adj_Res_Channel 0x43 + 16 + 17 // Ŷ + 18 sbit SDA = P2 ^ 1; /* */ + 19 sbit SCL = P2 ^ 0; /* ʱ */ + 20 + 21 void IIC_Delay(unsigned char i) + 22 { + 23 1 do + 24 1 { + 25 2 _nop_(); + 26 2 } while (i--); + 27 1 } + 28 + 29 // + 30 void IIC_Start(void) + 31 { + 32 1 SDA = 1; + 33 1 SCL = 1; + 34 1 IIC_Delay(DELAY_TIME); + 35 1 SDA = 0; + 36 1 IIC_Delay(DELAY_TIME); + 37 1 SCL = 0; + 38 1 } + 39 + 40 // ֹͣ + 41 void IIC_Stop(void) + 42 { + 43 1 SDA = 0; + 44 1 SCL = 1; + 45 1 IIC_Delay(DELAY_TIME); + 46 1 SDA = 1; + 47 1 IIC_Delay(DELAY_TIME); + 48 1 } + 49 + 50 // Ӧ + 51 void IIC_SendAck(bit ackbit) + 52 { + 53 1 SCL = 0; + 54 1 SDA = ackbit; // 0Ӧ1Ӧ + C51 COMPILER V9.59.0.0 IIC 03/05/2024 08:31:45 PAGE 2 + + 55 1 IIC_Delay(DELAY_TIME); + 56 1 SCL = 1; + 57 1 IIC_Delay(DELAY_TIME); + 58 1 SCL = 0; + 59 1 SDA = 1; + 60 1 IIC_Delay(DELAY_TIME); + 61 1 } + 62 + 63 // ȴӦ + 64 bit IIC_WaitAck(void) + 65 { + 66 1 bit ackbit; + 67 1 + 68 1 SCL = 1; + 69 1 IIC_Delay(DELAY_TIME); + 70 1 ackbit = SDA; + 71 1 SCL = 0; + 72 1 IIC_Delay(DELAY_TIME); + 73 1 return ackbit; + 74 1 } + 75 + 76 // ͨI2C߷ + 77 void IIC_SendByte(unsigned char byt) + 78 { + 79 1 unsigned char i; + 80 1 + 81 1 for (i = 0; i < 8; i++) + 82 1 { + 83 2 SCL = 0; + 84 2 IIC_Delay(DELAY_TIME); + 85 2 if (byt & 0x80) + 86 2 SDA = 1; + 87 2 else + 88 2 SDA = 0; + 89 2 IIC_Delay(DELAY_TIME); + 90 2 SCL = 1; + 91 2 byt <<= 1; + 92 2 IIC_Delay(DELAY_TIME); + 93 2 } + 94 1 SCL = 0; + 95 1 } + 96 + 97 // I2CϽ + 98 unsigned char IIC_RecByte(void) + 99 { + 100 1 unsigned char i, da; + 101 1 for (i = 0; i < 8; i++) + 102 1 { + 103 2 SCL = 1; + 104 2 IIC_Delay(DELAY_TIME); + 105 2 da <<= 1; + 106 2 if (SDA) + 107 2 da |= 1; + 108 2 SCL = 0; + 109 2 IIC_Delay(DELAY_TIME); + 110 2 } + 111 1 return da; + 112 1 } + 113 + 114 unsigned char Ad_Read(unsigned char addr) + 115 { + 116 1 unsigned char temp; + C51 COMPILER V9.59.0.0 IIC 03/05/2024 08:31:45 PAGE 3 + + 117 1 IIC_Start(); + 118 1 IIC_SendByte(0x90); + 119 1 IIC_WaitAck(); + 120 1 IIC_SendByte(addr); + 121 1 IIC_WaitAck(); + 122 1 IIC_Start(); + 123 1 IIC_SendByte(0x91); + 124 1 IIC_WaitAck(); + 125 1 temp = IIC_RecByte(); + 126 1 IIC_SendAck(1); + 127 1 IIC_Stop(); + 128 1 return temp; + 129 1 } + 130 + 131 // дEEPROM + 132 // ڲҪдַдĵַ(Ϊ8ı)д + 133 // ֵ + 134 // ܣEERPOMijַдַضַ + 135 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 136 { + 137 1 IIC_Start(); // Ϳź + 138 1 IIC_SendByte(0xA0); // ѡEEPROMоƬȷдģʽ + 139 1 IIC_WaitAck(); // ȴEEPROM + 140 1 + 141 1 IIC_SendByte(addr); // дҪ洢ݵַ + 142 1 IIC_WaitAck(); // ȴEEPROM + 143 1 + 144 1 while (num--) + 145 1 { + 146 2 IIC_SendByte(*EEPROM_String++); // ҪдϢд + 147 2 IIC_WaitAck(); // ȴEEPROM + 148 2 IIC_Delay(200); + 149 2 } + 150 1 IIC_Stop(); // ֹͣ + 151 1 } + 152 + 153 // EEPROM + 154 // ڲҪ洢ַȡĵַ(Ϊ8ı)ȡ + 155 // ֵ + 156 // ܣȡEERPOMijַеݣַС + 157 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 158 { + 159 1 IIC_Start(); // Ϳź + 160 1 IIC_SendByte(0xA0); // ѡEEPROMоƬȷдģʽ + 161 1 IIC_WaitAck(); // ȴEEPROM + 162 1 + 163 1 IIC_SendByte(addr); // дҪȡݵַ + 164 1 IIC_WaitAck(); // ȴEEPROM + 165 1 + 166 1 IIC_Start(); // Ϳź + 167 1 IIC_SendByte(0xA1); // ѡEEPROMоƬȷģʽ + 168 1 IIC_WaitAck(); // ȴEEPROM + 169 1 + 170 1 while (num--) + 171 1 { + 172 2 *EEPROM_String++ = IIC_RecByte(); // ҪдϢд + 173 2 if (num) + 174 2 IIC_SendAck(0); // Ӧ + 175 2 else + 176 2 IIC_SendAck(1); // Ӧ + 177 2 } + 178 1 + C51 COMPILER V9.59.0.0 IIC 03/05/2024 08:31:45 PAGE 4 + + 179 1 IIC_Stop(); // ֹͣ + 180 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 360 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- 2 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/main.lst b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/main.lst new file mode 100644 index 0000000..bf555fe --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/main.lst @@ -0,0 +1,223 @@ +C51 COMPILER V9.59.0.0 MAIN 03/05/2024 08:31:44 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* */ + 3 uchar Key_Slow_Down; // רñ + 4 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾݴ + 5 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Сݴ + 6 uchar Seg_Pos; // ɨרñ + 7 uint Seg_Slow_Down; // ܼרñ + 8 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Ledʾݴ + 9 + 10 /* ʾ */ + 11 uchar Seg_show_mode; // 0 1 2 + 12 + 13 uint old_vol; // һεĵѹֵ + 14 uchar vol_demo; // οѹ0-50 + 15 unsigned long count_down; // ½ؼ + 16 bit count_down_flag; // ½ؼ־λ + 17 /* ʱ */ + 18 uint time_5s; + 19 + 20 uchar error_count; + 21 + 22 /* ̴ */ + 23 void Key_Proc() + 24 { + 25 1 static uchar Key_Val, Key_Down, Key_Old, Key_Up; // רñ + 26 1 if (Key_Slow_Down) + 27 1 return; + 28 1 Key_Slow_Down = 1; // ̼ٳ + 29 1 + 30 1 Key_Val = Key_Read(); // ʵʱȡֵ + 31 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); // ׽½ + 32 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); // ׽Ͻ + 33 1 Key_Old = Key_Val; // ɨ + 34 1 switch (Key_Down) + 35 1 { + 36 2 case 12: + 37 2 if (Seg_show_mode == 0) + 38 2 { + 39 3 EEPROM_Write(&vol_demo, 0, 1); + 40 3 } + 41 2 Seg_show_mode = (++Seg_show_mode) % 3; + 42 2 error_count = 0; + 43 2 break; + 44 2 case 16: + 45 2 if (Seg_show_mode == 1) + 46 2 vol_demo = (vol_demo + 5 > 50 ? 0 : vol_demo + 5); + 47 2 error_count = 0; + 48 2 break; + 49 2 case 17: + 50 2 if (Seg_show_mode == 1) + 51 2 vol_demo = (vol_demo - 5 < 0 ? 50 : vol_demo - 5); + 52 2 error_count = 0; + 53 2 break; + 54 2 case 13: + C51 COMPILER V9.59.0.0 MAIN 03/05/2024 08:31:44 PAGE 2 + + 55 2 if (Seg_show_mode == 2) + 56 2 count_down = 0; + 57 2 error_count = 0; + 58 2 break; + 59 2 case 0: + 60 2 // أڷֹdownĬϵ0Ӱ + 61 2 break; + 62 2 default: + 63 2 error_count = (++error_count >= 3) ? 3 : error_count; + 64 2 break; + 65 2 } + 66 1 } + 67 + 68 /* Ϣ */ + 69 void Seg_Proc() + 70 { + 71 1 uint real_V; + 72 1 if (Seg_Slow_Down) + 73 1 return; + 74 1 Seg_Slow_Down = 1; // ܼٳ + 75 1 switch (Seg_show_mode) + 76 1 { + 77 2 case 0: + 78 2 /* ʾ */ + 79 2 Seg_Buf[0] = 11; // U + 80 2 real_V = Ad_Read(0x03) * 100 / 51; // 0-255->0-500 + 81 2 // ⵽½صʱ+1 + 82 2 if (old_vol > vol_demo * 10 && real_V < vol_demo * 10) + 83 2 count_down++; + 84 2 if (real_V < vol_demo * 10) + 85 2 count_down_flag = 1; + 86 2 else + 87 2 count_down_flag = 0; + 88 2 old_vol = real_V; + 89 2 Seg_Buf[5] = real_V / 100 % 10; // λ + 90 2 Seg_Buf[6] = real_V % 100 / 10; // ʮλ + 91 2 Seg_Buf[7] = real_V % 10; // λ + 92 2 Seg_Point[5] = 1; + 93 2 break; + 94 2 + 95 2 case 1: + 96 2 /**/ + 97 2 Seg_Buf[0] = 12; // P + 98 2 Seg_Buf[5] = vol_demo / 100 % 10; // λ + 99 2 Seg_Buf[6] = vol_demo / 10 % 10; // ʮλ + 100 2 Seg_Buf[7] = vol_demo % 10; // λ + 101 2 Seg_Point[5] = 1; + 102 2 break; + 103 2 case 2: + 104 2 /**/ + 105 2 Seg_Buf[0] = 13; // N + 106 2 Seg_Buf[1] = count_down / 10000000 % 10; + 107 2 Seg_Buf[2] = count_down / 1000000 % 10; + 108 2 Seg_Buf[3] = count_down / 100000 % 10; + 109 2 Seg_Buf[4] = count_down / 10000 % 10; + 110 2 Seg_Buf[5] = count_down / 1000 % 10; + 111 2 Seg_Buf[6] = count_down / 100 % 10; + 112 2 Seg_Buf[7] = count_down % 10; + 113 2 break; + 114 2 } + 115 1 } + 116 + C51 COMPILER V9.59.0.0 MAIN 03/05/2024 08:31:44 PAGE 3 + + 117 /* ʾ */ + 118 void Led_Proc() + 119 { + 120 1 ucLed[0] = (time_5s >= 5000); + 121 1 ucLed[1] = (count_down % 2); + 122 1 ucLed[2] = (error_count >= 3); + 123 1 } + 124 + 125 /* ʱ0жϳʼ */ + 126 void Timer0Init(void) // 1@12.000MHz + 127 { + 128 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 129 1 TMOD &= 0xF0; // öʱģʽ + 130 1 TL0 = 0x18; // öʱʼֵ + 131 1 TH0 = 0xFC; // öʱʼֵ + 132 1 TF0 = 0; // TF0־ + 133 1 TR0 = 1; // ʱ0ʼʱ + 134 1 ET0 = 1; // ʱж0 + 135 1 EA = 1; // жϴ + 136 1 } + 137 + 138 /* ʱ0жϷ */ + 139 void Timer0Server() interrupt 1 + 140 { + 141 1 if (++Key_Slow_Down == 10) + 142 1 Key_Slow_Down = 0; // ̼ר + 143 1 if (++Seg_Slow_Down == 500) + 144 1 Seg_Slow_Down = 0; // ܼר + 145 1 if (++Seg_Pos == 8) + 146 1 Seg_Pos = 0; // ʾר + 147 1 if (count_down_flag) + 148 1 { + 149 2 if (++time_5s >= 5000) + 150 2 time_5s = 5000; + 151 2 } + 152 1 else + 153 1 time_5s = 0; + 154 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 155 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 156 1 } + 157 + 158 void Delay750ms() //@12MHz + 159 { + 160 1 unsigned char i, j, k; + 161 1 + 162 1 _nop_(); + 163 1 _nop_(); + 164 1 i = 35; + 165 1 j = 51; + 166 1 k = 182; + 167 1 do + 168 1 { + 169 2 do + 170 2 { + 171 3 while (--k) + 172 3 ; + 173 3 } while (--j); + 174 2 } while (--i); + 175 1 } + 176 + 177 /* Main */ + 178 void main() + C51 COMPILER V9.59.0.0 MAIN 03/05/2024 08:31:44 PAGE 4 + + 179 { + 180 1 // ¶ȶȡĻ + 181 1 rd_temperature(); + 182 1 Delay750ms(); + 183 1 + 184 1 System_Init(); + 185 1 Timer0Init(); + 186 1 EEPROM_Read(&vol_demo, 0, 1); + 187 1 while (1) + 188 1 { + 189 2 Key_Proc(); + 190 2 Seg_Proc(); + 191 2 Led_Proc(); + 192 2 } + 193 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 932 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 43 ---- + IDATA SIZE = ---- ---- + BIT SIZE = 1 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/onewire.lst b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/onewire.lst new file mode 100644 index 0000000..d85eccc --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/onewire.lst @@ -0,0 +1,103 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 03/05/2024 08:31:45 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 #include "onewire.h" + 2 #include "reg52.h" + 3 + 4 sbit DQ = P1 ^ 4; + 5 + 6 // ڲʱ + 7 void Delay_OneWire(unsigned int t) + 8 { + 9 1 t *= 12; + 10 1 while (t--) + 11 1 ; + 12 1 } + 13 + 14 // д + 15 void Write_DS18B20(unsigned char dat) + 16 { + 17 1 unsigned char i; + 18 1 for (i = 0; i < 8; i++) + 19 1 { + 20 2 DQ = 0; + 21 2 DQ = dat & 0x01; + 22 2 Delay_OneWire(5); + 23 2 DQ = 1; + 24 2 dat >>= 1; // һһд + 25 2 } + 26 1 Delay_OneWire(5); + 27 1 } + 28 + 29 // ߶ + 30 unsigned char Read_DS18B20(void) + 31 { + 32 1 unsigned char i; + 33 1 unsigned char dat; + 34 1 + 35 1 for (i = 0; i < 8; i++) + 36 1 { + 37 2 DQ = 0; + 38 2 dat >>= 1; + 39 2 DQ = 1; + 40 2 if (DQ) + 41 2 { + 42 3 dat |= 0x80; // һһȡ + 43 3 } + 44 2 Delay_OneWire(5); + 45 2 } + 46 1 return dat; + 47 1 } + 48 + 49 // DS18B20ʼ + 50 bit init_ds18b20(void) + 51 { + 52 1 bit initflag = 0; + 53 1 + 54 1 DQ = 1; + C51 COMPILER V9.59.0.0 ONEWIRE 03/05/2024 08:31:45 PAGE 2 + + 55 1 Delay_OneWire(12); + 56 1 DQ = 0; + 57 1 Delay_OneWire(80); + 58 1 DQ = 1; + 59 1 Delay_OneWire(10); + 60 1 initflag = DQ; + 61 1 Delay_OneWire(5); + 62 1 + 63 1 return initflag; + 64 1 } + 65 float rd_temperature() + 66 { + 67 1 unsigned char low, high; + 68 1 init_ds18b20(); // ʼ + 69 1 Write_DS18B20(0xcc); // ROM + 70 1 Write_DS18B20(0x44); // ¶ת + 71 1 init_ds18b20(); // ʼ + 72 1 Write_DS18B20(0xcc); // ROM + 73 1 Write_DS18B20(0xbe); // ȡ¶ + 74 1 low = Read_DS18B20(); // λ + 75 1 high = Read_DS18B20(); // λ + 76 1 return ((high << 8) | low) / 16.0; + 77 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 187 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/ultrasound.lst b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/ultrasound.lst new file mode 100644 index 0000000..dc80e5d --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/ultrasound.lst @@ -0,0 +1,77 @@ +C51 COMPILER V9.59.0.0 ULTRASOUND 02/04/2024 22:39:06 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASOUND +OBJECT MODULE PLACED IN .\Objects\ultrasound.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ultrasound.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\ultrasound.lst) TABS(2) OBJECT(.\Objects\ultrasound.obj) + +line level source + + 1 #include + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 + 7 void Delay12us() //@12.000MHz + 8 { + 9 1 unsigned char i; + 10 1 + 11 1 _nop_(); + 12 1 _nop_(); + 13 1 i = 38; + 14 1 while (--i) + 15 1 ; + 16 1 } + 17 + 18 void Ut_Wave_Init() // ��������ʼ������ ����8��40Mhz�ķ��� + -�ź� + 19 { + 20 1 unsigned char i; + 21 1 for (i = 0; i < 8; i++) + 22 1 { + 23 2 Tx = 1; + 24 2 Delay12us(); + 25 2 Tx = 0; + 26 2 Delay12us(); + 27 2 } + 28 1 } + 29 + 30 unsigned char Ut_Wave_Data() // 超声波距离读取函数 + 31 { + 32 1 unsigned int time; + 33 1 TMOD &= 0X0F; + 34 1 TH1 = TL1 = 0; + 35 1 Ut_Wave_Init(); + 36 1 TR1 = 1; + 37 1 while ((Rx == 1) && (TF1 == 0)) + 38 1 ; + 39 1 TR1 = 0; + 40 1 if (TF1 == 0) + 41 1 { + 42 2 time = TH1 << 8 | TL1; + 43 2 return (time * 0.017); + 44 2 } + 45 1 else + 46 1 { + 47 2 TF1 = 0; + 48 2 return 0; + 49 2 } + 50 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + C51 COMPILER V9.59.0.0 ULTRASOUND 02/04/2024 22:39:06 PAGE 2 + + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/zuolan.m51 b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/zuolan.m51 new file mode 100644 index 0000000..8ca58a3 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Listings/zuolan.m51 @@ -0,0 +1,952 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\iic.obj, .\Objects\onewire.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\iic.obj (IIC) + .\Objects\onewire.obj (ONEWIRE) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?IMUL) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?ULDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0016H UNIT ?DT?SEG + DATA 001EH 0002H UNIT ?DT?LED + BIT 0020H.0 0000H.1 UNIT ?BI?MAIN + BIT 0020H.1 0000H.1 UNIT _BIT_GROUP_ + 0020H.2 0000H.6 *** GAP *** + DATA 0021H 002BH UNIT ?DT?MAIN + DATA 004CH 0005H UNIT _DATA_GROUP_ + IDATA 0051H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + 0003H 0008H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0296H UNIT ?C?LIB_CODE + CODE 02A4H 01C0H UNIT ?PR?SEG_PROC?MAIN + CODE 0464H 00C3H UNIT ?PR?KEY_PROC?MAIN + CODE 0527H 00AAH UNIT ?PR?TIMER0SERVER?MAIN + CODE 05D1H 008CH UNIT ?C_C51STARTUP + CODE 065DH 0073H UNIT ?PR?KEY_READ?KEY + CODE 06D0H 004AH UNIT ?PR?_EEPROM_READ?IIC + CODE 071AH 003FH UNIT ?C_INITSEG + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 2 + + + CODE 0759H 003BH UNIT ?PR?_LED_DISP?LED + CODE 0794H 003AH UNIT ?PR?_EEPROM_WRITE?IIC + CODE 07CEH 0037H UNIT ?PR?_SEG_DISP?SEG + CODE 0805H 0035H UNIT ?PR?_IIC_SENDBYTE?IIC + CODE 083AH 0034H UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 086EH 0030H UNIT ?PR?_AD_READ?IIC + CODE 089EH 002EH UNIT ?PR?LED_PROC?MAIN + CODE 08CCH 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 08F3H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 091AH 0026H UNIT ?PR?IIC_RECBYTE?IIC + CODE 0940H 0025H UNIT ?PR?MAIN?MAIN + CODE 0965H 0023H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0988H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 09A5H 001BH UNIT ?PR?IIC_WAITACK?IIC + CODE 09C0H 0017H UNIT ?PR?IIC_SENDACK?IIC + CODE 09D7H 0016H UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 09EDH 0015H UNIT ?PR?TIMER0INIT?MAIN + CODE 0A02H 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 0A11H 000FH UNIT ?PR?IIC_START?IIC + CODE 0A20H 000CH UNIT ?PR?_IIC_DELAY?IIC + CODE 0A2CH 000CH UNIT ?PR?IIC_STOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +---------------------------------------------------------------------- +?PR?TIMER0SERVER?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0INIT?MAIN + +--> ?PR?_EEPROM_READ?IIC + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.1 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 3 + + + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_EEPROM_READ?IIC ----- ----- 004CH 0005H + +--> ?PR?IIC_WAITACK?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?IIC_START?IIC + +--> ?PR?IIC_RECBYTE?IIC + +--> ?PR?IIC_SENDACK?IIC + +--> ?PR?IIC_STOP?IIC + +?PR?IIC_WAITACK?IIC 0020H.1 0000H.1 ----- ----- + +--> ?PR?IIC_START?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_START?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?_IIC_SENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_RECBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_SENDACK?IIC 0020H.1 0000H.1 ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_STOP?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +--> ?PR?_EEPROM_WRITE?IIC + +?PR?_EEPROM_WRITE?IIC ----- ----- 004CH 0005H + +--> ?PR?IIC_WAITACK?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?_IIC_DELAY?IIC + +--> ?PR?IIC_STOP?IIC + +?PR?SEG_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_AD_READ?IIC + +?PR?_AD_READ?IIC ----- ----- ----- ----- + +--> ?PR?IIC_START?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?IIC_WAITACK?IIC + +--> ?PR?IIC_RECBYTE?IIC + +--> ?PR?IIC_SENDACK?IIC + +--> ?PR?IIC_STOP?IIC + + + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 4 + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:089EH PUBLIC Led_Proc + D:0025H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:02A4H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:002DH PUBLIC Seg_Buf + C:0464H PUBLIC Key_Proc + D:0035H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:0940H PUBLIC main + D:0037H PUBLIC Key_Slow_Down + C:0527H PUBLIC Timer0Server + D:0038H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:0039H PUBLIC error_count + D:003AH PUBLIC time_5s + D:008EH PUBLIC AUXR + B:0020H.0 PUBLIC count_down_flag + D:003CH PUBLIC count_down + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + C:09EDH PUBLIC Timer0Init + D:0040H PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + D:0041H PUBLIC vol_demo + D:0042H PUBLIC ucLed + C:0A02H PUBLIC Delay750ms + D:004AH PUBLIC old_vol + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Old + D:0024H SYMBOL Key_Up + ------- ENDDO + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 5 + + + C:0464H LINE# 23 + C:0464H LINE# 24 + C:0464H LINE# 26 + C:046BH LINE# 28 + C:046EH LINE# 30 + C:0473H LINE# 31 + C:047CH LINE# 32 + C:0482H LINE# 33 + C:0485H LINE# 34 + C:049BH LINE# 35 + C:049BH LINE# 36 + C:049BH LINE# 37 + C:049FH LINE# 38 + C:049FH LINE# 39 + C:04ABH LINE# 40 + C:04ABH LINE# 41 + C:04B6H LINE# 42 + C:04B6H LINE# 43 + C:04B8H LINE# 44 + C:04B8H LINE# 45 + C:04BEH LINE# 46 + C:04DCH LINE# 47 + C:04DCH LINE# 48 + C:04DEH LINE# 49 + C:04DEH LINE# 50 + C:04E4H LINE# 51 + C:04FDH LINE# 52 + C:04FDH LINE# 53 + C:04FFH LINE# 54 + C:04FFH LINE# 55 + C:0505H LINE# 56 + C:050DH LINE# 57 + C:0510H LINE# 58 + C:0511H LINE# 59 + C:0511H LINE# 61 + C:0511H LINE# 62 + C:0511H LINE# 63 + C:0526H LINE# 64 + C:0526H LINE# 65 + C:0526H LINE# 66 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:0002H SYMBOL real_V + ------- ENDDO + C:02A4H LINE# 69 + C:02A4H LINE# 70 + C:02A4H LINE# 72 + C:02ADH LINE# 74 + C:02B2H LINE# 75 + C:02C7H LINE# 76 + C:02C7H LINE# 77 + C:02C7H LINE# 79 + C:02CAH LINE# 80 + C:02E2H LINE# 82 + C:02FAH LINE# 83 + C:030FH LINE# 84 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 6 + + + C:031EH LINE# 85 + C:0322H LINE# 87 + C:0324H LINE# 88 + C:0328H LINE# 89 + C:033CH LINE# 90 + C:0356H LINE# 91 + C:0363H LINE# 92 + C:0363H LINE# 93 + C:0365H LINE# 95 + C:0365H LINE# 97 + C:0368H LINE# 98 + C:0375H LINE# 99 + C:0382H LINE# 100 + C:038BH LINE# 101 + C:038EH LINE# 102 + C:038FH LINE# 103 + C:038FH LINE# 105 + C:0392H LINE# 106 + C:03B2H LINE# 107 + C:03D2H LINE# 108 + C:03F2H LINE# 109 + C:0411H LINE# 110 + C:0430H LINE# 111 + C:044EH LINE# 112 + C:0463H LINE# 113 + C:0463H LINE# 114 + C:0463H LINE# 115 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:089EH LINE# 118 + C:089EH LINE# 119 + C:089EH LINE# 120 + C:08B1H LINE# 121 + C:08B8H LINE# 122 + C:08CBH LINE# 123 + ------- ENDPROC LED_PROC + ------- PROC TIMER0INIT + C:09EDH LINE# 126 + C:09EDH LINE# 127 + C:09EDH LINE# 128 + C:09F0H LINE# 129 + C:09F3H LINE# 130 + C:09F6H LINE# 131 + C:09F9H LINE# 132 + C:09FBH LINE# 133 + C:09FDH LINE# 134 + C:09FFH LINE# 135 + C:0A01H LINE# 136 + ------- ENDPROC TIMER0INIT + ------- PROC TIMER0SERVER + C:0527H LINE# 139 + C:0544H LINE# 141 + C:054CH LINE# 142 + C:054EH LINE# 143 + C:055FH LINE# 144 + C:0565H LINE# 145 + C:056DH LINE# 146 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 7 + + + C:056FH LINE# 147 + C:0572H LINE# 148 + C:0572H LINE# 149 + C:0583H LINE# 150 + C:0589H LINE# 151 + C:058BH LINE# 153 + C:0591H LINE# 154 + C:05A8H LINE# 155 + C:05B6H LINE# 156 + ------- ENDPROC TIMER0SERVER + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0A02H LINE# 158 + C:0A02H LINE# 159 + C:0A02H LINE# 162 + C:0A03H LINE# 163 + C:0A04H LINE# 164 + C:0A06H LINE# 165 + C:0A08H LINE# 166 + C:0A0AH LINE# 168 + C:0A0AH LINE# 170 + C:0A0AH LINE# 171 + C:0A0CH LINE# 173 + C:0A0EH LINE# 174 + C:0A10H LINE# 175 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:0940H LINE# 178 + C:0940H LINE# 179 + C:0940H LINE# 181 + C:0943H LINE# 182 + C:0946H LINE# 184 + C:0949H LINE# 185 + C:094CH LINE# 186 + C:095AH LINE# 187 + C:095AH LINE# 188 + C:095AH LINE# 189 + C:095DH LINE# 190 + C:0960H LINE# 191 + C:0963H LINE# 192 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 8 + + + C:0759H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0004H SYMBOL enable + ------- DO + D:001EH SYMBOL temp + D:001FH SYMBOL temp_old + ------- ENDDO + C:0759H LINE# 3 + C:0759H LINE# 4 + C:0759H LINE# 9 + C:075DH LINE# 10 + C:076CH LINE# 12 + C:077AH LINE# 14 + C:0780H LINE# 15 + C:0780H LINE# 16 + C:0785H LINE# 17 + C:078DH LINE# 18 + C:0790H LINE# 19 + C:0793H LINE# 20 + C:0793H LINE# 21 + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:07CEH PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0016H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0004H SYMBOL dula + D:0002H SYMBOL point + C:07CEH LINE# 8 + C:07CEH LINE# 9 + C:07CEH LINE# 11 + C:07D1H LINE# 12 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 9 + + + C:07D9H LINE# 13 + C:07E0H LINE# 14 + C:07E8H LINE# 15 + C:07EBH LINE# 17 + C:07F2H LINE# 18 + C:07F6H LINE# 19 + C:07F9H LINE# 20 + C:0801H LINE# 21 + C:0804H LINE# 22 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:065DH PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:065DH LINE# 3 + C:065DH LINE# 4 + C:065DH LINE# 5 + C:065FH LINE# 7 + C:0661H LINE# 8 + C:0663H LINE# 9 + C:0665H LINE# 10 + C:0667H LINE# 11 + C:066CH LINE# 12 + C:0671H LINE# 13 + C:0676H LINE# 14 + C:067BH LINE# 16 + C:067DH LINE# 17 + C:067FH LINE# 18 + C:0681H LINE# 19 + C:0683H LINE# 20 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 10 + + + C:0688H LINE# 21 + C:068DH LINE# 22 + C:0692H LINE# 23 + C:0697H LINE# 25 + C:0699H LINE# 26 + C:069BH LINE# 27 + C:069DH LINE# 28 + C:069FH LINE# 29 + C:06A4H LINE# 30 + C:06A9H LINE# 31 + C:06AEH LINE# 32 + C:06B3H LINE# 34 + C:06B5H LINE# 35 + C:06B7H LINE# 36 + C:06B9H LINE# 37 + C:06BBH LINE# 38 + C:06C0H LINE# 39 + C:06C5H LINE# 40 + C:06CAH LINE# 41 + C:06CFH LINE# 42 + C:06CFH LINE# 43 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0988H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0988H LINE# 3 + C:0988H LINE# 4 + C:0988H LINE# 5 + C:098BH LINE# 6 + C:0993H LINE# 7 + C:0996H LINE# 9 + C:0999H LINE# 10 + C:09A1H LINE# 11 + C:09A4H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 11 + + + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:086EH PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + C:0A24H PUBLIC _IIC_Delay + C:06D0H PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0794H PUBLIC _EEPROM_Write + C:0A11H PUBLIC IIC_Start + C:09C0H PUBLIC IIC_SendAck + B:00A0H.1 PUBLIC SDA + C:0805H PUBLIC _IIC_SendByte + C:09AFH PUBLIC IIC_WaitAck + C:0A2CH PUBLIC IIC_Stop + B:00A0H.0 PUBLIC SCL + C:091AH PUBLIC IIC_RecByte + D:00D0H PUBLIC PSW + C:0A20H SYMBOL L?0034 + ------- PROC L?0033 + ------- ENDPROC L?0033 + C:0A20H SYMBOL L?0034 + ------- PROC _IIC_DELAY + D:0007H SYMBOL i + C:0A24H LINE# 21 + C:0A24H LINE# 22 + C:0A24H LINE# 24 + C:0A24H LINE# 25 + C:0A25H LINE# 26 + C:0A2BH LINE# 27 + ------- ENDPROC _IIC_DELAY + ------- PROC IIC_START + C:0A11H LINE# 30 + C:0A11H LINE# 31 + C:0A11H LINE# 32 + C:0A13H LINE# 33 + C:0A13H LINE# 34 + C:0A16H LINE# 35 + C:0A18H LINE# 36 + C:0A1DH LINE# 37 + C:0A1FH LINE# 38 + ------- ENDPROC IIC_START + ------- PROC IIC_STOP + C:0A2CH LINE# 41 + C:0A2CH LINE# 42 + C:0A2CH LINE# 43 + C:0A2EH LINE# 44 + C:0A2EH LINE# 45 + C:0A31H LINE# 46 + C:0A33H LINE# 47 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 12 + + + ------- ENDPROC IIC_STOP + ------- PROC IIC_SENDACK + B:0020H.1 SYMBOL ackbit + C:09C0H LINE# 51 + C:09C0H LINE# 52 + C:09C0H LINE# 53 + C:09C2H LINE# 54 + C:09C6H LINE# 55 + C:09CBH LINE# 56 + C:09CBH LINE# 57 + C:09CEH LINE# 58 + C:09D0H LINE# 59 + C:09D2H LINE# 60 + ------- ENDPROC IIC_SENDACK + ------- PROC L?0032 + ------- ENDPROC L?0032 + ------- PROC IIC_WAITACK + ------- DO + B:0020H.1 SYMBOL ackbit + ------- ENDDO + C:09AFH LINE# 64 + C:09AFH LINE# 65 + C:09AFH LINE# 68 + C:09AFH LINE# 69 + C:09B2H LINE# 70 + C:09B6H LINE# 71 + C:09B8H LINE# 72 + C:09BDH LINE# 73 + C:09BFH LINE# 74 + ------- ENDPROC IIC_WAITACK + ------- PROC _IIC_SENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0805H LINE# 77 + C:0807H LINE# 78 + C:0807H LINE# 81 + C:0813H LINE# 82 + C:0813H LINE# 83 + C:0815H LINE# 84 + C:081AH LINE# 85 + C:081EH LINE# 86 + C:0822H LINE# 88 + C:0824H LINE# 89 + C:0829H LINE# 90 + C:082BH LINE# 91 + C:082FH LINE# 92 + C:0834H LINE# 93 + C:0837H LINE# 94 + C:0839H LINE# 95 + ------- ENDPROC _IIC_SENDBYTE + ------- PROC IIC_RECBYTE + ------- DO + D:0004H SYMBOL i + D:0005H SYMBOL da + ------- ENDDO + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 13 + + + C:091AH LINE# 98 + C:091AH LINE# 99 + C:091AH LINE# 101 + C:0926H LINE# 102 + C:0926H LINE# 103 + C:0926H LINE# 104 + C:0929H LINE# 105 + C:092DH LINE# 106 + C:0930H LINE# 107 + C:0933H LINE# 108 + C:0935H LINE# 109 + C:093AH LINE# 110 + C:093DH LINE# 111 + C:093FH LINE# 112 + ------- ENDPROC IIC_RECBYTE + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:086EH LINE# 114 + C:0870H LINE# 115 + C:0870H LINE# 117 + C:0873H LINE# 118 + C:0878H LINE# 119 + C:087BH LINE# 120 + C:0880H LINE# 121 + C:0883H LINE# 122 + C:0886H LINE# 123 + C:088BH LINE# 124 + C:088EH LINE# 125 + C:0893H LINE# 126 + C:0898H LINE# 127 + C:089BH LINE# 128 + C:089DH LINE# 129 + ------- ENDPROC _AD_READ + ------- PROC _EEPROM_WRITE + D:004CH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0050H SYMBOL num + C:0794H LINE# 135 + C:079AH LINE# 136 + C:079AH LINE# 137 + C:079AH LINE# 138 + C:079AH LINE# 139 + C:079DH LINE# 141 + C:07A2H LINE# 142 + C:07A5H LINE# 144 + C:07ACH LINE# 145 + C:07ACH LINE# 146 + C:07C1H LINE# 147 + C:07C4H LINE# 148 + C:07C9H LINE# 149 + C:07CBH LINE# 150 + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:004CH SYMBOL EEPROM_String + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 14 + + + D:0003H SYMBOL addr + D:0050H SYMBOL num + C:06D0H LINE# 157 + C:06D6H LINE# 158 + C:06D6H LINE# 159 + C:06D6H LINE# 160 + C:06D6H LINE# 161 + C:06D9H LINE# 163 + C:06DEH LINE# 164 + C:06E1H LINE# 166 + C:06E4H LINE# 167 + C:06E9H LINE# 168 + C:06ECH LINE# 170 + C:06F3H LINE# 171 + C:06F3H LINE# 172 + C:0708H LINE# 173 + C:070CH LINE# 174 + C:0710H LINE# 176 + C:0715H LINE# 177 + C:0717H LINE# 179 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:0965H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:09DBH PUBLIC _Delay_OneWire + C:08CCH PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:08F3H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:083AH PUBLIC rd_temperature + D:00D0H PUBLIC PSW + C:09D7H SYMBOL L?0017 + ------- PROC L?0016 + ------- ENDPROC L?0016 + C:09D7H SYMBOL L?0017 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + C:09DBH LINE# 7 + C:09DBH LINE# 8 + C:09DBH LINE# 9 + C:09E2H LINE# 10 + C:09ECH LINE# 12 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0003H SYMBOL dat + ------- DO + D:0002H SYMBOL i + ------- ENDDO + C:08CCH LINE# 15 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 15 + + + C:08CEH LINE# 16 + C:08CEH LINE# 18 + C:08DAH LINE# 19 + C:08DAH LINE# 20 + C:08DCH LINE# 21 + C:08E0H LINE# 22 + C:08E3H LINE# 23 + C:08E5H LINE# 24 + C:08E9H LINE# 25 + C:08ECH LINE# 26 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0002H SYMBOL i + D:0003H SYMBOL dat + ------- ENDDO + C:0965H LINE# 30 + C:0965H LINE# 31 + C:0965H LINE# 35 + C:0971H LINE# 36 + C:0971H LINE# 37 + C:0973H LINE# 38 + C:0977H LINE# 39 + C:0979H LINE# 40 + C:097CH LINE# 41 + C:097CH LINE# 42 + C:097FH LINE# 43 + C:097FH LINE# 44 + C:0982H LINE# 45 + C:0985H LINE# 46 + C:0987H LINE# 47 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.1 SYMBOL initflag + ------- ENDDO + C:08F3H LINE# 50 + C:08F3H LINE# 51 + C:08F3H LINE# 52 + C:08F5H LINE# 54 + C:08F7H LINE# 55 + C:08FEH LINE# 56 + C:0900H LINE# 57 + C:0907H LINE# 58 + C:0909H LINE# 59 + C:0910H LINE# 60 + C:0914H LINE# 61 + C:0917H LINE# 63 + C:0919H LINE# 64 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:083AH LINE# 65 + C:083AH LINE# 66 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/05/2024 08:31:45 PAGE 16 + + + C:083AH LINE# 68 + C:083DH LINE# 69 + C:0842H LINE# 70 + C:0847H LINE# 71 + C:084AH LINE# 72 + C:084FH LINE# 73 + C:0854H LINE# 74 + C:0859H LINE# 75 + C:085CH LINE# 76 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ?C?FPDIV + C:0011H PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FCAST + C:00B8H PUBLIC ?C?FCASTC + C:00B3H PUBLIC ?C?FCASTI + C:00AEH PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CLDPTR + C:0136H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CSTPTR + C:014FH PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?IMUL + C:0161H PUBLIC ?C?IMUL + ------- ENDMOD ?C?IMUL + + ------- MODULE ?C?UIDIV + C:0173H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?ULDIV + C:0204H PUBLIC ?C?ULDIV + ------- ENDMOD ?C?ULDIV + + ------- MODULE ?C?LNEG + C:0296H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +Program Size: data=81.2 xdata=0 code=2608 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Init.obj b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Init.obj new file mode 100644 index 0000000..11f0578 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Init.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Key.obj b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Key.obj new file mode 100644 index 0000000..f6e94d1 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Key.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Led.obj b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Led.obj new file mode 100644 index 0000000..63ad2bd Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Led.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Seg.obj b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Seg.obj new file mode 100644 index 0000000..13ee4b3 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Seg.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Uart.obj b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Uart.obj new file mode 100644 index 0000000..83bc355 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/Uart.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/ds1302.obj b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/ds1302.obj new file mode 100644 index 0000000..58ff5b9 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/ds1302.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/iic.obj b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/iic.obj new file mode 100644 index 0000000..8c2ac9f Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/iic.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/main.obj b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/main.obj new file mode 100644 index 0000000..ec34dbf Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/main.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/onewire.obj b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/onewire.obj new file mode 100644 index 0000000..c1c5ef3 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/onewire.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/ultrasound.obj b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/ultrasound.obj new file mode 100644 index 0000000..53a8ca7 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/ultrasound.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan new file mode 100644 index 0000000..4fa0fcf Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan differ diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan.build_log.htm b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..0345612 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan.build_log.htm @@ -0,0 +1,42 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: VDM51.DLL V1.00 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\blue-bridge-cup-learning\\11 ʮһʡ\һ\ʮһʡ1\User\zuolan.uvproj +Project File Date: 02/06/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling iic.c... +compiling onewire.c... +linking... +Program Size: data=81.2 xdata=0 code=2608 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan.hex b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan.hex new file mode 100644 index 0000000..d1e0132 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan.hex @@ -0,0 +1,200 @@ +:10071A00082D0A0A0A0A0A0A0A0A0825000000001D +:0E072A00000000000842000000000000000077 +:10046400E537600302052675370112065D8F21E525 +:10047400236521FF5521F522E521F45FF52485212B +:1004840023E522700302052624F3606F24FD602413 +:1004940014604724057076E540700CFB7A007941BE +:1004A400755001FD1207940540E54075F0038485FD +:1004B400F0408055E5406401701EE5412405FFE4E9 +:1004C40033FED3EF9432EE6480948040047F008046 +:1004D40005E5412405FF8F41802FE5406401701933 +:1004E400E54124FBE434FFC36480948050047F32EC +:1004F4008005E54124FBFF8F41800EE540640270D6 +:1005040008F53FF53EF53DF53CE4F539220539C3E0 +:10051400E53994037480948040047F038002AF39EA +:020524008F390D +:0105260022B2 +:1002A400E53645356003020463F535753601E540EE +:1002B40014700302036514700302038F24026003A5 +:1002C400020463752D0B7F0312086EEF75F064A4AE +:1002D400FFAEF07C007D33120173AB07AA06E54143 +:1002E40075F00AA4FFAEF0D3E54B9FE54A9E401B90 +:1002F400EB9FEA9E5015E53F2401F53FE4353EF5BA +:100304003EE4353DF53DE4353CF53CE54175F00A08 +:10031400A4FFC3EB9FEA95F05004D2008002C20010 +:100324008A4A8B4B7C007D64AF03AE021201737C5E +:10033400007D0A1201738D327C007D64AF03AE022E +:100344001201737E007F0ACFCDCFCECCCE120173C3 +:100354008F33AE02AF037C007D0A1201738D3480AB +:1003640026752D0CE54175F0648475F00A8485F0DA +:1003740032E54175F00A8475F00A8485F033E5416D +:1003840075F00A8485F034752A0122752D0D7B8061 +:100394007A9679987800AF3FAE3EAD3DAC3C120200 +:1003A40004E47B0AFAF9F8120204AF038F2E7B40AF +:1003B4007A42790F7800AF3FAE3EAD3DAC3C1202BD +:1003C40004E47B0AFAF9F8120204AF038F2F7BA02E +:1003D4007A8679017800AF3FAE3EAD3DAC3C120267 +:1003E40004E47B0AFAF9F8120204AF038F30E47BC9 +:1003F400107A27F9F8AF3FAE3EAD3DAC3C12020493 +:10040400E47B0AFAF9F8120204AF038F31E47BE8C3 +:100414007A03F9F8AF3FAE3EAD3DAC3C120204E4C2 +:100424007B0AFAF9F8120204AF038F32E47B64FA10 +:10043400F9F8AF3FAE3EAD3DAC3C120204E47B0A9A +:10044400FAF9F8120204AF038F33E47B0AFAF9F8DD +:0F045400AF3FAE3EAD3DAC3C120204AF038F3460 +:010463002276 +:10089E00C3E53B9488E53A941340047F0180027FC0 +:1008AE00008F42E53F5401FF8F43C3E53994037433 +:0E08BE0080948040047F0180027F008F4422DE +:1009ED00538E7F5389F0758A18758CFCC28DD28C0D +:0509FD00D2A9D2AF22D7 +:03000B00020527C4 +:10052700C0E0C0F0C083C082C0D075D000C000C09A +:1005370001C002C003C004C005C006C0070537E5F7 +:1005470037640A7002F5370536E53670020535FF60 +:10055700AE35BE0109BFF40675350075360005389E +:10056700E53864087002F538300019053BE53B7043 +:1005770002053AC39488E53A9413400E753A137509 +:100587003B888006753A00753B00742D2538F8E6E0 +:10059700FD7C0074252538F8E6FB7A00AF38120792 +:1005A700CE74422538F8E6FD7C00AF38120759D0E3 +:1005B70007D006D005D004D003D002D001D000D098 +:0A05C700D0D082D083D0F0D0E03213 +:0E0A020000007F237E337DB6DDFEDEFCDFFAD2 +:010A100022C3 +:1009400012083A120A021209881209ED7B007A0095 +:100950007941755001E4FD1206D01204641202A41C +:0509600012089E80F565 +:06073800011E00011FFF7D +:10075900ED4C600FA8077401088002C333D8FC422E +:100769001E800EA8077401088002C333D8FCF45216 +:100779001EE51E651F6013E51EF4F580E5A0541FF4 +:0A0789004480F5A053A01F851E1F39 +:010793002243 +:10073E000E08C0F9A4B0999282F88090FFC18CC8BF +:0A074E000816010204081020408084 +:1007CE007580FFE5A0541F44E0F5A074162FF8E6DF +:1007DE00F580E5A0541F44C0F5A053A01F74082D4A +:1007EE00F8E6F580EB4A600353807FE5A0541F4482 +:0707FE00E0F5A053A01F224B +:10065D00E4FFC2C4D2C2D2B5D2B420B3027F04200B +:10066D00B2027F0520B1027F0620B0027F07D2C4FF +:10067D00C2C2D2B5D2B420B3027F0820B2027F0924 +:10068D0020B1027F0A20B0027F0BD2C4D2C2C2B504 +:10069D00D2B420B3027F0C20B2027F0D20B1027FB5 +:1006AD000E20B0027F0FD2C4D2C2D2B5C2B420B3D5 +:1006BD00027F1020B2027F1120B1027F1220B00202 +:0206CD007F1399 +:0106CF002208 +:100988007580FFE5A0541F4480F5A053A01FE4F52F +:0D09980080E5A0541F44A0F5A053A01F222D +:040A2000D2A07F05DC +:080A240000AE071FEE70F9227D +:0F0A1100D2A1120A20C2A17F05120A24C2A0227C +:0C0A2C00C2A1120A20D2A17F05020A24F8 +:1009C000C2A0A20192A17F05120A24120A20C2A08D +:0709D000D2A17F05020A24F9 +:0A09A500AB05120A117FA01208052D +:1009AF00120A20A2A19201C2A07F05120A24A2015D +:0109BF002215 +:02080500AD073D +:10080700E4FCECC39408748094805024C2A07F0554 +:10081700120A24ED30E704D2A18002C2A17F05129B +:100827000A24D2A0ED25E0FD7F05120A240C80D210 +:02083700C2A05D +:01083900229C +:10091A00E4FCECC39408748094805017120A20ED0A +:10092A0025E0FD30A103430501C2A07F05120A2478 +:05093A000C80DFAF0599 +:01093F002295 +:02086E00AB07D6 +:10087000120A117F901208051209AFAF0312080582 +:100880001209AF120A117F911208051209AF12095D +:0D0890001AAD07D2011209C0120A2CAF05E3 +:01089D002238 +:100794008B4C8A4D894E1209A5AF03120805120924 +:1007A400AFAF501550EF601FAB4C054EE54EAA4D50 +:1007B4007002054D14F9120136FF1208051209AF33 +:0A07C4007FC8120A2480DA020A2C12 +:1006D0008B4C8A4D894E1209A5AF031208051209E9 +:1006E000AF120A117FA11208051209AFAF501550C1 +:1006F000EF602412091AAB4C054EE54EAA4D70026C +:10070000054D14F9EF12014FE5506004C20180025B +:0A071000D2011209C080D5020A2CA4 +:0409D7007F057E001A +:1009DB007C007D0C120161EF1FAC0670011E4C7088 +:0209EB00F622F2 +:0208CC00AB0778 +:1008CE00E4FAEAC39408748094805012C294EB1335 +:1008DE0092941209D7D294EBC313FB0A80E47F05DE +:0508EE007E000209DBA1 +:10096500E4FAEAC39408748094805014C294EBC3EB +:1009750013FBD2943094034303801209D70A80E213 +:02098500AF03BE +:01098700224D +:1008F300C201D2947F0C7E001209DBC2947F507E2A +:10090300001209DBD2947F0A7E001209DBA29492C3 +:06091300011209D7A20148 +:0109190022BB +:10083A001208F37FCC1208CC7F441208CC1208F3BA +:10084A007FCC1208CC7FBE1208CC120965A9071208 +:10085A000965EFAD01FCEC1200B3E4FBFA7980788C +:04086A004102001136 +:10000E0002012BEC5D046005E85904700302012126 +:10001E001200EC580460F6EC4860F2EC7004FDFE41 +:10002E00FF22C860DB2481C85009C39860025006C5 +:10003E000201289850CAF582E9294B4A7005AB8215 +:10004E0002011775F0007C1A7880C3EF9BEE9AEDD3 +:10005E0099400DC3EF9BFFEE9AFEED99FDE842F03D +:10006E00DC23ACF0D0E0FFD0E0FED0E0FDAB822090 +:10007E00E7101BEB60BAEC2CFCEF33FFEE33FEED1A +:10008E0033FD020103E803F830E705C0F075F00018 +:10009E00EF2FFFEE33FEED33FD40B830E7C280AAFE +:1000AE0075F020800E75F010800575F0087D007ECD +:1000BE00007F003392D530D503120296EC334010F8 +:1000CE00EF33FFEE33FEED33FDEC33FCD5F0ED22D6 +:0E00DE00E5F0247EA2D513CC92E7CDCEFF2212 +:1000EC00E9D2E7C933E833F892D5EDD2E7CD33EC5A +:0700FC0033FC5002B2D522D3 +:10010300EC30E7100FBF000C0EBE00080DBD00045D +:100113000BEB6014A2D5EB13FCED92E7FD2274FF09 +:10012300FCFDFEFF22E480F8A2D574FF13FC7D8062 +:03013300E480EF76 +:030000000205D125 +:0C05D100787FE4F6D8FD75815002061812 +:10013600BB010689828A83E0225002E722BBFE02C7 +:09014600E32289828A83E49322FA +:10014F00BB010689828A83F0225002F722BBFE018F +:02015F00F32289 +:10016100EF8DF0A4A8F0CF8CF0A428CE8DF0A42EB2 +:02017100FE226C +:10017300BC000BBE0029EF8DF084FFADF022E4CC70 +:10018300F875F008EF2FFFEE33FEEC33FCEE9DEC39 +:10019300984005FCEE9DFE0FD5F0E9E4CEFD22ED7F +:1001A300F8F5F0EE8420D21CFEADF075F008EF2FC9 +:1001B300FFED33FD4007985006D5F0F222C398FDBA +:0501C3000FD5F0EA2257 +:1001C80075F008758200EF2FFFEE33FECD33CDCCEE +:1001D80033CCC58233C5829BED9AEC99E582984071 +:1001E8000CF582EE9BFEED9AFDEC99FC0FD5F0D64E +:1001F800E4CEFBE4CDFAE4CCF9A88222B800C1B978 +:100208000059BA002DEC8BF084CFCECDFCE5F0CBB5 +:10021800F97818EF2FFFEE33FEED33FDEC33FCEBEE +:1002280033FB10D703994004EB99FB0FD8E5E4F9A9 +:10023800FA227818EF2FFFEE33FEED33FDEC33FC96 +:10024800C933C910D7059BE99A4007EC9BFCE99A8A +:10025800F90FD8E0E4C9FAE4CCFB2275F010EF2FCF +:10026800FFEE33FEED33FDCC33CCC833C810D707CF +:100278009BEC9AE899400AED9BFDEC9AFCE899F80A +:0E0288000FD5F0DAE4CDFBE4CCFAE4C8F9229D +:0E029600C3E49FFFE49EFEE49DFDE49CFC2279 +:1005DD00020940E493A3F8E493A34003F68001F2EB +:1005ED0008DFF48029E493A3F85407240CC8C3331F +:1005FD00C4540F4420C8834004F456800146F6DFEE +:10060D00E4800B010204081020408090071AE47E5C +:10061D00019360BCA3FF543F30E509541FFEE493E2 +:10062D00A360010ECF54C025E060A840B8E493A3A9 +:10063D00FAE493A3F8E493A3C8C582C8CAC583CAD4 +:10064D00F0A3C8C582C8CAC583CADFE9DEE780BE8C +:0107580000A0 +:00000001FF diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan.lnp b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan.lnp new file mode 100644 index 0000000..fcba125 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/Objects/zuolan.lnp @@ -0,0 +1,9 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\iic.obj", +".\Objects\onewire.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/main.c b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/main.c new file mode 100644 index 0000000..430ea8a --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/main.c @@ -0,0 +1,193 @@ +#include "main.h" +/* */ +uchar Key_Slow_Down; // רñ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾݴ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Сݴ +uchar Seg_Pos; // ɨרñ +uint Seg_Slow_Down; // ܼרñ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Ledʾݴ + +/* ʾ */ +uchar Seg_show_mode; // 0 1 2 + +uint old_vol; // һεĵѹֵ +uchar vol_demo; // οѹ0-50 +unsigned long count_down; // ½ؼ +bit count_down_flag; // ½ؼ־λ +/* ʱ */ +uint time_5s; + +uchar error_count; + +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Old, Key_Up; // רñ + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; // ̼ٳ + + Key_Val = Key_Read(); // ʵʱȡֵ + Key_Down = Key_Val & (Key_Old ^ Key_Val); // ׽½ + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); // ׽Ͻ + Key_Old = Key_Val; // ɨ + switch (Key_Down) + { + case 12: + if (Seg_show_mode == 0) + { + EEPROM_Write(&vol_demo, 0, 1); + } + Seg_show_mode = (++Seg_show_mode) % 3; + error_count = 0; + break; + case 16: + if (Seg_show_mode == 1) + vol_demo = (vol_demo + 5 > 50 ? 0 : vol_demo + 5); + error_count = 0; + break; + case 17: + if (Seg_show_mode == 1) + vol_demo = (vol_demo - 5 < 0 ? 50 : vol_demo - 5); + error_count = 0; + break; + case 13: + if (Seg_show_mode == 2) + count_down = 0; + error_count = 0; + break; + case 0: + // أڷֹdownĬϵ0Ӱ + break; + default: + error_count = (++error_count >= 3) ? 3 : error_count; + break; + } +} + +/* Ϣ */ +void Seg_Proc() +{ + uint real_V; + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; // ܼٳ + switch (Seg_show_mode) + { + case 0: + /* ʾ */ + Seg_Buf[0] = 11; // U + real_V = Ad_Read(0x03) * 100 / 51; // 0-255->0-500 + // ⵽½صʱ+1 + if (old_vol > vol_demo * 10 && real_V < vol_demo * 10) + count_down++; + if (real_V < vol_demo * 10) + count_down_flag = 1; + else + count_down_flag = 0; + old_vol = real_V; + Seg_Buf[5] = real_V / 100 % 10; // λ + Seg_Buf[6] = real_V % 100 / 10; // ʮλ + Seg_Buf[7] = real_V % 10; // λ + Seg_Point[5] = 1; + break; + + case 1: + /**/ + Seg_Buf[0] = 12; // P + Seg_Buf[5] = vol_demo / 100 % 10; // λ + Seg_Buf[6] = vol_demo / 10 % 10; // ʮλ + Seg_Buf[7] = vol_demo % 10; // λ + Seg_Point[5] = 1; + break; + case 2: + /**/ + Seg_Buf[0] = 13; // N + Seg_Buf[1] = count_down / 10000000 % 10; + Seg_Buf[2] = count_down / 1000000 % 10; + Seg_Buf[3] = count_down / 100000 % 10; + Seg_Buf[4] = count_down / 10000 % 10; + Seg_Buf[5] = count_down / 1000 % 10; + Seg_Buf[6] = count_down / 100 % 10; + Seg_Buf[7] = count_down % 10; + break; + } +} + +/* ʾ */ +void Led_Proc() +{ + ucLed[0] = (time_5s >= 5000); + ucLed[1] = (count_down % 2); + ucLed[2] = (error_count >= 3); +} + +/* ʱ0жϳʼ */ +void Timer0Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; // ʱж0 + EA = 1; // жϴ +} + +/* ʱ0жϷ */ +void Timer0Server() interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; // ̼ר + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; // ܼר + if (++Seg_Pos == 8) + Seg_Pos = 0; // ʾר + if (count_down_flag) + { + if (++time_5s >= 5000) + time_5s = 5000; + } + else + time_5s = 0; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void Delay750ms() //@12MHz +{ + unsigned char i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} + +/* Main */ +void main() +{ + // ¶ȶȡĻ + rd_temperature(); + Delay750ms(); + + System_Init(); + Timer0Init(); + EEPROM_Read(&vol_demo, 0, 1); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/main.h b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/main.h new file mode 100644 index 0000000..b757fef --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/main.h @@ -0,0 +1,13 @@ +/* 头文件声明区 */ +#include //单片机寄存器专用头文件 +#include //初始化底层驱动专用头文件 +#include //Led底层驱动专用头文件 +#include //按键底层驱动专用头文件 +#include //数码管底层驱动专用头文件 +#include //标准库底层驱动专用头文件 +#include //温度传感器底层驱动 +#include //IIC底层驱动专用头文件 +#include +#include +#define uchar unsigned char +#define uint unsigned int diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/zuolan.uvgui.haze b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/zuolan.uvgui.haze new file mode 100644 index 0000000..887b1e2 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/zuolan.uvgui.haze @@ -0,0 +1,1405 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 6 + -8 + 1544 + 838 + + + + 0 + + 911 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000600000005000000010000006F463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313120B5DACAAED2BBBDECCAA1C8FC5FD7F3E1B05CB5DAD2BBCCD75CB5DACAAED2BBBDECCAA1C8FC315C4472697665725C4C65642E6300000000054C65642E6300000000C5D4F200FFFFFFFF6F463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313120B5DACAAED2BBBDECCAA1C8FC5FD7F3E1B05CB5DAD2BBCCD75CB5DACAAED2BBBDECCAA1C8FC315C4472697665725C4C65642E6800000000054C65642E6800000000FFDC7800FFFFFFFF6F463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313120B5DACAAED2BBBDECCAA1C8FC5FD7F3E1B05CB5DAD2BBCCD75CB5DACAAED2BBBDECCAA1C8FC315C4472697665725C5365672E6300000000055365672E6300000000BECEA100FFFFFFFF25443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000F0A0A100FFFFFFFF6E463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313120B5DACAAED2BBBDECCAA1C8FC5FD7F3E1B05CB5DAD2BBCCD75CB5DACAAED2BBBDECCAA1C8FC315C557365725C6D61696E2E6300000000066D61696E2E6300000000BCA8E100FFFFFFFF6E463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313120B5DACAAED2BBBDECCAA1C8FC5FD7F3E1B05CB5DAD2BBCCD75CB5DACAAED2BBBDECCAA1C8FC315C557365725C6D61696E2E6800000000066D61696E2E68000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E000000000600002D020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100007E00000070040000EB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000001602000000060000E5020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000EB050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000EB050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000EB050000CC020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000EB000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000CF010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000FE010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100003C020000000000004F00000090010000FE0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000BF01000070040000400200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FE010000000600000202000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B401000077940000018000800000010000000000000040020000EE05000023030000000000000202000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2153 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000134C65645F426C696E6B5F466C61675F4672657196000000000000000E00134C65645F426C696E6B5F466C61675F46726571014804434F4C3404434F4C3304434F4C3204434F4C3104524F573404524F573304524F573204524F573103503233025031037362750273620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 5 + + ..\Driver\Led.c + 10 + 1 + 5 + 1 + + 0 + + + ..\Driver\Led.h + 0 + 1 + 4 + 1 + + 0 + + + ..\Driver\Seg.c + 1 + 1 + 22 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 0 + 20 + 21 + 1 + + 0 + + + main.h + 0 + 1 + 9 + 1 + + 0 + + + + +
diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/zuolan.uvopt b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/zuolan.uvopt new file mode 100644 index 0000000..df9262e --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/zuolan.uvopt @@ -0,0 +1,258 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + -1 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 1 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 1 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + +
diff --git a/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/zuolan.uvproj b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/zuolan.uvproj new file mode 100644 index 0000000..4deb906 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第一套/第十一届省赛1/User/zuolan.uvproj @@ -0,0 +1,410 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + iic.c + 1 + ..\Driver\iic.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + + + + + +
diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第11届省赛第二次-温度采集与输出.pdf b/题目/真题/11 第十一届省赛_左岚/第二套/第11届省赛第二次-温度采集与输出.pdf new file mode 100644 index 0000000..c2b69d2 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第11届省赛第二次-温度采集与输出.pdf differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/.vscode/settings.json b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Init.c b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Init.h b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Key.c b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Key.h b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Led.c b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Led.c new file mode 100644 index 0000000..4749a48 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Led.c @@ -0,0 +1,21 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Led.h b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Led.h new file mode 100644 index 0000000..a560cef --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Led.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Seg.c b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Seg.c new file mode 100644 index 0000000..9684764 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Seg.c @@ -0,0 +1,24 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 C P +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0xc6, 0x8c}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Seg.h b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/iic.c b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/iic.c new file mode 100644 index 0000000..aaabb3c --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/iic.c @@ -0,0 +1,139 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// 写入的值是数字值0-255,而不是模拟值 +void Da_Write(unsigned char dat) +{ + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/iic.h b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/iic.h new file mode 100644 index 0000000..d03a75b --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/iic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Da_Write(unsigned char dat); \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/onewire.c b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/onewire.c new file mode 100644 index 0000000..8efce41 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/onewire.c @@ -0,0 +1,98 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "REG52.H" +#include "intrins.h" +sbit DQ = P1 ^ 4; // 单总线数据口 +void Delay4us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 9; + while (--i) + ; +} + +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + Delay4us(); + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0x44); // 启动温度转换 + Delay_OneWire(200); // 等待温度转换 + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0xbe); // 读取温度值 + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/onewire.h b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/Driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Init.lst b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Init.lst new file mode 100644 index 0000000..37c63cd --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 03/22/2024 15:44:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Key.lst b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Key.lst new file mode 100644 index 0000000..fb31388 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 03/22/2024 15:44:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 03/22/2024 15:44:49 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Led.lst b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Led.lst new file mode 100644 index 0000000..54f20a8 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Led.lst @@ -0,0 +1,45 @@ +C51 COMPILER V9.59.0.0 LED 03/22/2024 15:44:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 58 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 2 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Seg.lst b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Seg.lst new file mode 100644 index 0000000..4aa52bd --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Seg.lst @@ -0,0 +1,48 @@ +C51 COMPILER V9.59.0.0 SEG 03/22/2024 15:44:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 C P + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0xc6, 0x8c}; + 5 // λѡ + 6 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 8 { + 9 1 // ֶ + 10 1 P0 = 0xff; + 11 1 P2 = P2 & 0x1f | 0xe0; + 12 1 + 13 1 // ѡʾλ + 14 1 P0 = seg_wela[wela]; + 15 1 P2 = P2 & 0x1f | 0xc0; + 16 1 P2 &= 0x1f; + 17 1 + 18 1 // ѡʾ + 19 1 P0 = seg_dula[dula]; + 20 1 if (point) + 21 1 P0 &= 0x7f; + 22 1 P2 = P2 & 0x1f | 0xe0; + 23 1 P2 &= 0x1f; + 24 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 21 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Uart.lst b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Ultrasonic.lst b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/ds1302.lst b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/iic.lst b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/iic.lst new file mode 100644 index 0000000..38b501c --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/iic.lst @@ -0,0 +1,168 @@ +C51 COMPILER V9.59.0.0 IIC 03/22/2024 15:44:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 03/22/2024 15:44:49 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 03/22/2024 15:44:49 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 // 写入的值是数字值0-255,而不是模拟值 + 127 void Da_Write(unsigned char dat) + 128 { + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 + 134 1 I2CSendByte(0x41); + 135 1 I2CWaitAck(); + 136 1 I2CSendByte(dat); + 137 1 I2CWaitAck(); + 138 1 I2CStop(); + 139 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 215 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/main.lst b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/main.lst new file mode 100644 index 0000000..7ec3a44 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/main.lst @@ -0,0 +1,229 @@ +C51 COMPILER V9.59.0.0 MAIN 03/22/2024 15:44:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ̷ */ + 12 uchar Key_Slow_Down; + 13 + 14 /* ʾ */ + 15 uchar Seg_show_mode; // 0 ʾ 1 + 16 /* */ + 17 uchar T_value; // ¶Ȳ + 18 uchar T_para_max = 30, T_para_min = 20; // ¶Ȳ + 19 uchar T_para_max_set, T_para_min_set; // ¶Ȳ + 20 /* ж */ + 21 bit para_mode; // 0 ѡ¶ 1ѡ¶ + 22 bit error_data_set; // + 23 #define N 10 + 24 uint data_array[N]; // ڴС + 25 uint sum_temp; // ܺ + 26 uchar index_temp; // + 27 uchar arr_count; // + 28 + 29 uint filter(uint new_data) + 30 { + 31 1 sum_temp -= data_array[index_temp]; + 32 1 data_array[index_temp] = new_data; + 33 1 sum_temp += data_array[index_temp]; + 34 1 index_temp = (++index_temp) % N; // ֤index_temp0~N-1֮ת + 35 1 arr_count = (++arr_count == N + 1) ? N : arr_count; // еԪظ + 36 1 return sum_temp / arr_count; + 37 1 } + 38 + 39 /* ̴ */ + 40 void Key_Proc() + 41 { + 42 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 43 1 if (Key_Slow_Down) + 44 1 return; + 45 1 Key_Slow_Down = 1; + 46 1 + 47 1 Key_Val = Key_Read(); + 48 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 49 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 50 1 Key_Old = Key_Val; + 51 1 if (Key_Down == 4) + 52 1 { + 53 2 Seg_show_mode = (++Seg_show_mode) % 2; + 54 2 para_mode = 0; + C51 COMPILER V9.59.0.0 MAIN 03/22/2024 15:44:49 PAGE 2 + + 55 2 if (Seg_show_mode == 1) + 56 2 { + 57 3 // ֵֵ + 58 3 T_para_max_set = T_para_max; + 59 3 T_para_min_set = T_para_min; + 60 3 } + 61 2 if (Seg_show_mode == 0) + 62 2 { + 63 3 // вж + 64 3 if (T_para_max_set >= T_para_min_set) + 65 3 { + 66 4 error_data_set = 0; + 67 4 T_para_max = T_para_max_set; + 68 4 T_para_min = T_para_min_set; + 69 4 } + 70 3 else + 71 3 { + 72 4 error_data_set = 1; + 73 4 } + 74 3 } + 75 2 } + 76 1 if (Key_Down == 5) + 77 1 para_mode ^= 1; + 78 1 if (Seg_show_mode == 1) + 79 1 { + 80 2 if (para_mode == 0) + 81 2 { + 82 3 // ¶ + 83 3 if (Key_Down == 6) + 84 3 T_para_min_set = (++T_para_min_set) % 100; + 85 3 if (Key_Down == 7) + 86 3 T_para_min_set = (T_para_min_set == 0) ? 99 : T_para_min_set - 1; + 87 3 } + 88 2 else + 89 2 { + 90 3 // ¶ + 91 3 if (Key_Down == 6) + 92 3 T_para_max_set = (++T_para_max_set) % 100; + 93 3 if (Key_Down == 7) + 94 3 T_para_max_set = (T_para_max_set == 0) ? 99 : T_para_max_set - 1; + 95 3 } + 96 2 } + 97 1 } + 98 /* ܴ */ + 99 void Seg_Proc() + 100 { + 101 1 if (Seg_Slow_Down) + 102 1 return; + 103 1 Seg_Slow_Down = 1; + 104 1 T_value = filter(rd_temperature()); + 105 1 if (T_value > T_para_max) + 106 1 Da_Write(4 * 51); + 107 1 else if (T_value < T_para_min) + 108 1 Da_Write(2 * 51); + 109 1 else + 110 1 Da_Write(3 * 51); + 111 1 switch (Seg_show_mode) + 112 1 { + 113 2 case 0: + 114 2 /* ʾ */ + 115 2 Seg_Buf[0] = 11; // C + 116 2 memset(Seg_Buf + 1, 10, 5); + C51 COMPILER V9.59.0.0 MAIN 03/22/2024 15:44:49 PAGE 3 + + 117 2 Seg_Buf[6] = T_value / 10 % 10; + 118 2 Seg_Buf[7] = T_value % 10; + 119 2 break; + 120 2 + 121 2 case 1: + 122 2 /* */ + 123 2 Seg_Buf[0] = 12; // P + 124 2 Seg_Buf[1] = Seg_Buf[2] = 10; + 125 2 Seg_Buf[3] = T_para_max_set / 10 % 10; + 126 2 Seg_Buf[4] = T_para_max_set % 10; + 127 2 Seg_Buf[5] = 10; + 128 2 Seg_Buf[6] = T_para_min_set / 10 % 10; + 129 2 Seg_Buf[7] = T_para_min_set % 10; + 130 2 break; + 131 2 } + 132 1 } + 133 + 134 /* LED */ + 135 void Led_Proc() + 136 { + 137 1 ucLed[0] = (T_value > T_para_max); + 138 1 ucLed[1] = (T_value < T_para_min); + 139 1 ucLed[2] = (T_value < T_para_max && T_value > T_para_min); + 140 1 ucLed[3] = error_data_set; + 141 1 } + 142 + 143 /* ʱ0жϳʼ */ + 144 void Timer0_Init(void) // 1@12.000MHz + 145 { + 146 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 147 1 TMOD &= 0xF0; // öʱģʽ + 148 1 TL0 = 0x18; // öʱʼֵ + 149 1 TH0 = 0xFC; // öʱʼֵ + 150 1 TF0 = 0; // TF0־ + 151 1 TR0 = 1; // ʱ0ʼʱ + 152 1 ET0 = 1; + 153 1 EA = 1; + 154 1 } + 155 + 156 /* ʱ0жϺ */ + 157 void Timer0_ISR(void) interrupt 1 + 158 { + 159 1 if (++Key_Slow_Down == 10) + 160 1 Key_Slow_Down = 0; + 161 1 if (++Seg_Slow_Down == 500) + 162 1 Seg_Slow_Down = 0; + 163 1 if (++Seg_Pos == 8) + 164 1 Seg_Pos = 0; + 165 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 166 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 167 1 } + 168 + 169 void Delay750ms(void) //@12.000MHz + 170 { + 171 1 unsigned char data i, j, k; + 172 1 + 173 1 _nop_(); + 174 1 _nop_(); + 175 1 i = 35; + 176 1 j = 51; + 177 1 k = 182; + 178 1 do + C51 COMPILER V9.59.0.0 MAIN 03/22/2024 15:44:49 PAGE 4 + + 179 1 { + 180 2 do + 181 2 { + 182 3 while (--k) + 183 3 ; + 184 3 } while (--j); + 185 2 } while (--i); + 186 1 } + 187 void main() + 188 { + 189 1 System_Init(); + 190 1 Timer0_Init(); + 191 1 rd_temperature(); + 192 1 Delay750ms(); + 193 1 while (1) + 194 1 { + 195 2 Key_Proc(); + 196 2 Seg_Proc(); + 197 2 Led_Proc(); + 198 2 } + 199 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 664 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 61 ---- + IDATA SIZE = ---- ---- + BIT SIZE = 2 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/onewire.lst b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/onewire.lst new file mode 100644 index 0000000..d13347d --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/onewire.lst @@ -0,0 +1,125 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 03/22/2024 15:44:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit DQ = P1 ^ 4; // 单总线数据口 + 10 void Delay4us(void) //@12.000MHz + 11 { + 12 1 unsigned char data i; + 13 1 + 14 1 _nop_(); + 15 1 _nop_(); + 16 1 i = 9; + 17 1 while (--i) + 18 1 ; + 19 1 } + 20 + 21 // + 22 void Delay_OneWire(unsigned int t) + 23 { + 24 1 unsigned char i; + 25 1 while (t--) + 26 1 { + 27 2 for (i = 0; i < 12; i++) + 28 2 ; + 29 2 } + 30 1 } + 31 + 32 // + 33 void Write_DS18B20(unsigned char dat) + 34 { + 35 1 unsigned char i; + 36 1 for (i = 0; i < 8; i++) + 37 1 { + 38 2 DQ = 0; + 39 2 DQ = dat & 0x01; + 40 2 Delay_OneWire(5); + 41 2 DQ = 1; + 42 2 dat >>= 1; + 43 2 } + 44 1 Delay_OneWire(5); + 45 1 } + 46 + 47 // + 48 unsigned char Read_DS18B20(void) + 49 { + 50 1 unsigned char i; + 51 1 unsigned char dat; + 52 1 + 53 1 for (i = 0; i < 8; i++) + C51 COMPILER V9.59.0.0 ONEWIRE 03/22/2024 15:44:49 PAGE 2 + + 54 1 { + 55 2 DQ = 0; + 56 2 dat >>= 1; + 57 2 DQ = 1; + 58 2 Delay4us(); + 59 2 if (DQ) + 60 2 { + 61 3 dat |= 0x80; + 62 3 } + 63 2 Delay_OneWire(5); + 64 2 } + 65 1 return dat; + 66 1 } + 67 + 68 // + 69 bit init_ds18b20(void) + 70 { + 71 1 bit initflag = 0; + 72 1 + 73 1 DQ = 1; + 74 1 Delay_OneWire(12); + 75 1 DQ = 0; + 76 1 Delay_OneWire(80); + 77 1 DQ = 1; + 78 1 Delay_OneWire(10); + 79 1 initflag = DQ; + 80 1 Delay_OneWire(5); + 81 1 + 82 1 return initflag; + 83 1 } + 84 + 85 float rd_temperature() + 86 { + 87 1 unsigned char low, high; + 88 1 init_ds18b20(); + 89 1 Write_DS18B20(0xcc); // 跳过ROM + 90 1 Write_DS18B20(0x44); // 启动温度转换 + 91 1 Delay_OneWire(200); // 等待温度转换 + 92 1 init_ds18b20(); + 93 1 Write_DS18B20(0xcc); // 跳过ROM + 94 1 Write_DS18B20(0xbe); // 读取温度值 + 95 1 low = Read_DS18B20(); + 96 1 high = Read_DS18B20(); + 97 1 return (float)(high << 8 | low) * 0.0625; + 98 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 212 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/zuolan.m51 b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/zuolan.m51 new file mode 100644 index 0000000..c6fb584 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Listings/zuolan.m51 @@ -0,0 +1,940 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\iic.obj, .\Objects\onewire.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\iic.obj (IIC) + .\Objects\onewire.obj (ONEWIRE) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0015H UNIT ?DT?SEG + DATA 001DH 0002H UNIT ?DT?LED + 001FH 0001H *** GAP *** + BIT 0020H.0 0000H.2 UNIT ?BI?MAIN + BIT 0020H.2 0000H.1 UNIT _BIT_GROUP_ + 0020H.3 0000H.5 *** GAP *** + DATA 0021H 003DH UNIT ?DT?MAIN + IDATA 005EH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0007H UNIT ?PR?DELAY4US?ONEWIRE + 000AH 0001H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0254H UNIT ?C?LIB_CODE + CODE 0262H 00B8H UNIT ?PR?KEY_PROC?MAIN + CODE 031AH 0094H UNIT ?PR?SEG_PROC?MAIN + CODE 03AEH 008CH UNIT ?C_C51STARTUP + CODE 043AH 007AH UNIT ?PR?TIMER0_ISR?MAIN + CODE 04B4H 007AH UNIT ?PR?KEY_READ?KEY + CODE 052EH 005DH UNIT ?PR?_FILTER?MAIN + CODE 058BH 0044H UNIT ?C_INITSEG + CODE 05CFH 003BH UNIT ?PR?RD_TEMPERATURE?ONEWIRE + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 2 + + + CODE 060AH 003AH UNIT ?PR?LED_PROC?MAIN + CODE 0644H 003AH UNIT ?PR?_LED_DISP?LED + CODE 067EH 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 06B4H 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 06E9H 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 0710H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 0737H 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 075DH 0026H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0783H 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 07A1H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 07BEH 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 07D8H 001AH UNIT ?PR?_DA_WRITE?IIC + CODE 07F2H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 080AH 0017H UNIT ?PR?MAIN?MAIN + CODE 0821H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0836H 0015H UNIT ?PR?I2CWAITACK?IIC + CODE 084BH 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 085AH 000FH UNIT ?PR?I2CSTART?IIC + CODE 0869H 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP + +--> CALLED SEGMENT START LENGTH +-------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.2 0000H.1 + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 3 + + + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- + +--> ?PR?DELAY4US?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?KEY_PROC?MAIN ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN ----- ----- + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?_FILTER?MAIN + +--> ?PR?_DA_WRITE?IIC + +?PR?_DA_WRITE?IIC ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CWAITACK?IIC ----- ----- + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (MAIN) + + VALUE TYPE NAME + ---------------------------------- + + ------- MODULE MAIN + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0025H PUBLIC T_para_min + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:0026H PUBLIC T_para_max + D:00B0H PUBLIC P3 + C:043AH PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:052EH PUBLIC _filter + C:060AH PUBLIC Led_Proc + D:0027H PUBLIC Seg_Point + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 4 + + + D:00A8H PUBLIC IE + C:031AH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:002FH PUBLIC data_array + D:0043H PUBLIC Seg_Buf + C:0262H PUBLIC Key_Proc + D:004BH PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:080AH PUBLIC main + C:0821H PUBLIC Timer0_Init + D:004CH PUBLIC Key_Slow_Down + B:0020H.0 PUBLIC para_mode + D:004DH PUBLIC T_para_min_set + D:004EH PUBLIC T_para_max_set + D:004FH PUBLIC index_temp + D:0050H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:0051H PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + D:0052H PUBLIC arr_count + D:0053H PUBLIC T_value + B:0088H.4 PUBLIC TR0 + B:0020H.1 PUBLIC error_data_set + D:0054H PUBLIC sum_temp + D:0056H PUBLIC ucLed + C:084BH PUBLIC Delay750ms + D:00D0H PUBLIC PSW + ------- PROC _FILTER + D:0006H SYMBOL new_data + C:052EH LINE# 29 + C:052EH LINE# 30 + C:052EH LINE# 31 + C:0545H LINE# 32 + C:0551H LINE# 33 + C:0565H LINE# 34 + C:0570H LINE# 35 + C:0580H LINE# 36 + ------- ENDPROC _FILTER + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:0262H LINE# 40 + C:0262H LINE# 41 + C:0262H LINE# 43 + C:0269H LINE# 45 + C:026CH LINE# 47 + C:0271H LINE# 48 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 5 + + + C:027AH LINE# 49 + C:0280H LINE# 50 + C:0283H LINE# 51 + C:028CH LINE# 52 + C:028CH LINE# 53 + C:0294H LINE# 54 + C:0296H LINE# 55 + C:029DH LINE# 56 + C:029DH LINE# 58 + C:02A0H LINE# 59 + C:02A3H LINE# 60 + C:02A3H LINE# 61 + C:02A7H LINE# 62 + C:02A7H LINE# 64 + C:02AEH LINE# 65 + C:02AEH LINE# 66 + C:02B0H LINE# 67 + C:02B3H LINE# 68 + C:02B6H LINE# 69 + C:02B8H LINE# 71 + C:02B8H LINE# 72 + C:02BAH LINE# 73 + C:02BAH LINE# 74 + C:02BAH LINE# 75 + C:02BAH LINE# 76 + C:02C0H LINE# 77 + C:02C5H LINE# 78 + C:02CBH LINE# 79 + C:02CBH LINE# 80 + C:02CEH LINE# 81 + C:02CEH LINE# 83 + C:02D4H LINE# 84 + C:02DFH LINE# 85 + C:02E5H LINE# 86 + C:02F3H LINE# 87 + C:02F4H LINE# 89 + C:02F4H LINE# 91 + C:02FAH LINE# 92 + C:0305H LINE# 93 + C:030BH LINE# 94 + C:0319H LINE# 95 + C:0319H LINE# 96 + C:0319H LINE# 97 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:031AH LINE# 99 + C:031AH LINE# 100 + C:031AH LINE# 101 + C:0321H LINE# 103 + C:0324H LINE# 104 + C:032FH LINE# 105 + C:0336H LINE# 106 + C:033AH LINE# 107 + C:0341H LINE# 108 + C:0345H LINE# 110 + C:034AH LINE# 111 + C:0352H LINE# 112 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 6 + + + C:0352H LINE# 113 + C:0352H LINE# 115 + C:0355H LINE# 116 + C:0364H LINE# 117 + C:0371H LINE# 118 + C:0373H LINE# 119 + C:0375H LINE# 121 + C:0375H LINE# 123 + C:0378H LINE# 124 + C:037EH LINE# 125 + C:038BH LINE# 126 + C:0394H LINE# 127 + C:0397H LINE# 128 + C:03A4H LINE# 129 + C:03ADH LINE# 130 + C:03ADH LINE# 131 + C:03ADH LINE# 132 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:060AH LINE# 135 + C:060AH LINE# 136 + C:060AH LINE# 137 + C:0619H LINE# 138 + C:0628H LINE# 139 + C:063DH LINE# 140 + C:0643H LINE# 141 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:0821H LINE# 144 + C:0821H LINE# 145 + C:0821H LINE# 146 + C:0824H LINE# 147 + C:0827H LINE# 148 + C:082AH LINE# 149 + C:082DH LINE# 150 + C:082FH LINE# 151 + C:0831H LINE# 152 + C:0833H LINE# 153 + C:0835H LINE# 154 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:043AH LINE# 157 + C:0457H LINE# 159 + C:045FH LINE# 160 + C:0461H LINE# 161 + C:046DH LINE# 162 + C:0470H LINE# 163 + C:0478H LINE# 164 + C:047AH LINE# 165 + C:048DH LINE# 166 + C:0499H LINE# 167 + ------- ENDPROC TIMER0_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 7 + + + ------- ENDDO + C:084BH LINE# 169 + C:084BH LINE# 170 + C:084BH LINE# 173 + C:084CH LINE# 174 + C:084DH LINE# 175 + C:084FH LINE# 176 + C:0851H LINE# 177 + C:0853H LINE# 179 + C:0853H LINE# 181 + C:0853H LINE# 182 + C:0855H LINE# 184 + C:0857H LINE# 185 + C:0859H LINE# 186 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:080AH LINE# 187 + C:080AH LINE# 188 + C:080AH LINE# 189 + C:080DH LINE# 190 + C:0810H LINE# 191 + C:0813H LINE# 192 + C:0816H LINE# 193 + C:0816H LINE# 194 + C:0816H LINE# 195 + C:0819H LINE# 196 + C:081CH LINE# 197 + C:081FH LINE# 198 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0644H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:001DH SYMBOL temp + D:001EH SYMBOL temp_old + ------- ENDDO + C:0644H LINE# 5 + C:0644H LINE# 6 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 8 + + + C:0644H LINE# 10 + C:0647H LINE# 11 + C:0656H LINE# 13 + C:0664H LINE# 14 + C:066AH LINE# 15 + C:066AH LINE# 16 + C:066FH LINE# 17 + C:0677H LINE# 18 + C:067AH LINE# 19 + C:067DH LINE# 20 + C:067DH LINE# 21 + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:067EH PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0015H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:067EH LINE# 7 + C:067EH LINE# 8 + C:067EH LINE# 10 + C:0681H LINE# 11 + C:0689H LINE# 14 + C:0690H LINE# 15 + C:0698H LINE# 16 + C:069BH LINE# 19 + C:06A2H LINE# 20 + C:06A5H LINE# 21 + C:06A8H LINE# 22 + C:06B0H LINE# 23 + C:06B3H LINE# 24 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 9 + + + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:04B4H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:04B4H LINE# 2 + C:04B4H LINE# 3 + C:04B4H LINE# 4 + C:04B6H LINE# 5 + C:04B8H LINE# 6 + C:04BAH LINE# 7 + C:04BCH LINE# 8 + C:04BEH LINE# 9 + C:04C0H LINE# 10 + C:04C3H LINE# 11 + C:04C5H LINE# 12 + C:04C8H LINE# 13 + C:04CAH LINE# 14 + C:04CDH LINE# 15 + C:04CFH LINE# 16 + C:04D2H LINE# 17 + C:04D4H LINE# 18 + C:04D6H LINE# 19 + C:04D8H LINE# 20 + C:04DAH LINE# 21 + C:04DCH LINE# 22 + C:04DFH LINE# 23 + C:04E1H LINE# 24 + C:04E4H LINE# 25 + C:04E6H LINE# 26 + C:04E9H LINE# 27 + C:04EBH LINE# 28 + C:04EEH LINE# 29 + C:04F0H LINE# 30 + C:04F2H LINE# 31 + C:04F4H LINE# 32 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 10 + + + C:04F6H LINE# 33 + C:04F8H LINE# 34 + C:04FBH LINE# 35 + C:04FDH LINE# 36 + C:0500H LINE# 37 + C:0502H LINE# 38 + C:0505H LINE# 39 + C:0507H LINE# 40 + C:050AH LINE# 41 + C:050CH LINE# 42 + C:050EH LINE# 43 + C:0510H LINE# 44 + C:0512H LINE# 45 + C:0514H LINE# 46 + C:0517H LINE# 47 + C:0519H LINE# 48 + C:051CH LINE# 49 + C:051EH LINE# 50 + C:0521H LINE# 51 + C:0523H LINE# 52 + C:0526H LINE# 53 + C:0528H LINE# 54 + C:052AH LINE# 55 + C:052DH LINE# 56 + C:052DH LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:07A1H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:07A1H LINE# 3 + C:07A1H LINE# 4 + C:07A1H LINE# 5 + C:07A4H LINE# 6 + C:07ACH LINE# 7 + C:07AFH LINE# 9 + C:07B2H LINE# 10 + C:07BAH LINE# 11 + C:07BDH LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 11 + + + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:07C2H SYMBOL _I2C_Delay + C:07D8H PUBLIC _Da_Write + D:00B8H PUBLIC IP + C:0737H PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + B:00A0H.0 PUBLIC scl + C:085AH PUBLIC I2CStart + C:07F2H PUBLIC _I2CSendAck + C:06B4H PUBLIC _I2CSendByte + C:0839H PUBLIC I2CWaitAck + C:0869H PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:07BEH SYMBOL L?0022 + ------- PROC L?0021 + ------- ENDPROC L?0021 + C:07BEH SYMBOL L?0022 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:07C2H LINE# 12 + C:07C2H LINE# 13 + C:07C2H LINE# 15 + C:07C2H LINE# 16 + C:07C3H LINE# 17 + C:07C4H LINE# 18 + C:07C5H LINE# 19 + C:07C6H LINE# 20 + C:07C7H LINE# 21 + C:07C8H LINE# 22 + C:07C9H LINE# 23 + C:07CAH LINE# 24 + C:07CBH LINE# 25 + C:07CCH LINE# 26 + C:07CDH LINE# 27 + C:07CEH LINE# 28 + C:07CFH LINE# 29 + C:07D0H LINE# 30 + C:07D1H LINE# 31 + C:07D7H LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:085AH LINE# 35 + C:085AH LINE# 36 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 12 + + + C:085AH LINE# 37 + C:085CH LINE# 38 + C:085CH LINE# 39 + C:085FH LINE# 40 + C:0861H LINE# 41 + C:0866H LINE# 42 + C:0868H LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:0869H LINE# 46 + C:0869H LINE# 47 + C:0869H LINE# 48 + C:086BH LINE# 49 + C:086BH LINE# 50 + C:086EH LINE# 51 + C:0870H LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:06B4H LINE# 56 + C:06B6H LINE# 57 + C:06B6H LINE# 60 + C:06C2H LINE# 61 + C:06C2H LINE# 62 + C:06C4H LINE# 63 + C:06C9H LINE# 64 + C:06CDH LINE# 65 + C:06CDH LINE# 66 + C:06CFH LINE# 67 + C:06D1H LINE# 69 + C:06D1H LINE# 70 + C:06D3H LINE# 71 + C:06D3H LINE# 72 + C:06D8H LINE# 73 + C:06DAH LINE# 74 + C:06DEH LINE# 75 + C:06E3H LINE# 76 + C:06E6H LINE# 78 + C:06E8H LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:0737H LINE# 82 + C:0737H LINE# 83 + C:0737H LINE# 86 + C:0743H LINE# 87 + C:0743H LINE# 88 + C:0743H LINE# 89 + C:0746H LINE# 90 + C:074AH LINE# 91 + C:074DH LINE# 92 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 13 + + + C:0750H LINE# 93 + C:0752H LINE# 94 + C:0757H LINE# 95 + C:075AH LINE# 96 + C:075CH LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + ------- PROC L?0023 + ------- ENDPROC L?0023 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:0839H LINE# 100 + C:0839H LINE# 101 + C:0839H LINE# 104 + C:0839H LINE# 105 + C:083CH LINE# 106 + C:0841H LINE# 107 + C:0843H LINE# 108 + C:0848H LINE# 110 + C:084AH LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:07F2H LINE# 114 + C:07F2H LINE# 115 + C:07F2H LINE# 116 + C:07F4H LINE# 117 + C:07F9H LINE# 118 + C:07FEH LINE# 119 + C:07FEH LINE# 120 + C:0801H LINE# 121 + C:0803H LINE# 122 + C:0805H LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:07D8H LINE# 127 + C:07DAH LINE# 128 + C:07DAH LINE# 130 + C:07DDH LINE# 131 + C:07DFH LINE# 132 + C:07E2H LINE# 134 + C:07E4H LINE# 135 + C:07E7H LINE# 136 + C:07ECH LINE# 137 + C:07EFH LINE# 138 + ------- ENDPROC _DA_WRITE + ------- ENDMOD IIC + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:075DH PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:0787H PUBLIC _Delay_OneWire + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 14 + + + C:0003H PUBLIC Delay4us + C:06E9H PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:0710H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:05CFH PUBLIC rd_temperature + D:00D0H PUBLIC PSW + ------- PROC DELAY4US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0003H LINE# 10 + C:0003H LINE# 11 + C:0003H LINE# 14 + C:0004H LINE# 15 + C:0005H LINE# 16 + C:0007H LINE# 17 + C:0009H LINE# 19 + ------- ENDPROC DELAY4US + C:0783H SYMBOL L?0023 + ------- PROC L?0022 + ------- ENDPROC L?0022 + C:0783H SYMBOL L?0023 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:0787H LINE# 22 + C:0787H LINE# 23 + C:0787H LINE# 25 + C:0791H LINE# 26 + C:0791H LINE# 27 + C:07A0H LINE# 29 + C:07A0H LINE# 30 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:06E9H LINE# 33 + C:06EBH LINE# 34 + C:06EBH LINE# 36 + C:06F7H LINE# 37 + C:06F7H LINE# 38 + C:06F9H LINE# 39 + C:06FDH LINE# 40 + C:0700H LINE# 41 + C:0702H LINE# 42 + C:0706H LINE# 43 + C:0709H LINE# 44 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 15 + + + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:075DH LINE# 48 + C:075DH LINE# 49 + C:075DH LINE# 53 + C:0769H LINE# 54 + C:0769H LINE# 55 + C:076BH LINE# 56 + C:076FH LINE# 57 + C:0771H LINE# 58 + C:0774H LINE# 59 + C:0777H LINE# 60 + C:0777H LINE# 61 + C:077AH LINE# 62 + C:077AH LINE# 63 + C:077DH LINE# 64 + C:0780H LINE# 65 + C:0782H LINE# 66 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.2 SYMBOL initflag + ------- ENDDO + C:0710H LINE# 69 + C:0710H LINE# 70 + C:0710H LINE# 71 + C:0712H LINE# 73 + C:0714H LINE# 74 + C:071BH LINE# 75 + C:071DH LINE# 76 + C:0724H LINE# 77 + C:0726H LINE# 78 + C:072DH LINE# 79 + C:0731H LINE# 80 + C:0734H LINE# 82 + C:0736H LINE# 83 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:05CFH LINE# 85 + C:05CFH LINE# 86 + C:05CFH LINE# 88 + C:05D2H LINE# 89 + C:05D7H LINE# 90 + C:05DCH LINE# 91 + C:05E3H LINE# 92 + C:05E6H LINE# 93 + C:05EBH LINE# 94 + C:05F0H LINE# 95 + C:05F5H LINE# 96 + C:05F8H LINE# 97 + ------- ENDPROC RD_TEMPERATURE + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/22/2024 15:44:49 PAGE 16 + + + ------- ENDMOD ONEWIRE + + ------- MODULE ?C?FPMUL + C:000EH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:011EH PUBLIC ?C?FCASTC + C:0119H PUBLIC ?C?FCASTI + C:0114H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0152H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?UIDIV + C:01D3H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:0228H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + + ------- MODULE ?C?MEMSET + C:0236H PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?I2CRECEIVEBYTE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_I2CSENDACK?IIC + +Program Size: data=93.3 xdata=0 code=2164 +LINK/LOCATE RUN COMPLETE. 2 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Init.obj b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Init.obj new file mode 100644 index 0000000..bd46f7e Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Init.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Key.obj b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Key.obj new file mode 100644 index 0000000..2f2f940 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Key.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Led.obj b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Led.obj new file mode 100644 index 0000000..ec0c731 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Led.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Seg.obj b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Seg.obj new file mode 100644 index 0000000..35f088a Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Seg.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Uart.obj b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Uart.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Ultrasonic.obj b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/Ultrasonic.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/ds1302.obj b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/ds1302.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/iic.obj b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/iic.obj new file mode 100644 index 0000000..c7001d8 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/iic.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/main.obj b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/main.obj new file mode 100644 index 0000000..a97a887 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/main.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/onewire.obj b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/onewire.obj new file mode 100644 index 0000000..f3b2ba9 Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/onewire.obj differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan new file mode 100644 index 0000000..f2ce6ec Binary files /dev/null and b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan differ diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan.build_log.htm b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..fc90977 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan.build_log.htm @@ -0,0 +1,46 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 + Target DLL: VDM51.DLL +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\demo_zuolan\User\zuolan.uvproj +Project File Date: 02/24/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling iic.c... +compiling onewire.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?I2CRECEIVEBYTE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_I2CSENDACK?IIC +Program Size: data=93.3 xdata=0 code=2164 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 2 Warning(s). +
+ + diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan.hex b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan.hex new file mode 100644 index 0000000..c3048c2 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan.hex @@ -0,0 +1,172 @@ +:10058B000856000000000000000008430A0A0A0A8F +:10059B000A0A0A0A082700000000000000000126D2 +:0405AB001E012514F4 +:10052E00E54F25E0242FF8E6FC08E6FDC3E5559DD2 +:10053E00F555E5549CF554E54F25E0242FF8A60615 +:10054E0008A607E54F25E0242FF8E6FE08E6255518 +:10055E00F555EE3554F554054FE54F75F00A848583 +:10056E00F04F0552E552640B70047F0A8002AF52C1 +:0D057E008F52EFFD7C00AE54AF550201D34B +:10026200E54C6003020319754C011204B48F21E5B9 +:10027200246521FF5521F522E521F45FF52385212F +:1002820024AF227E00EF6404702E0551E551540123 +:10029200F551C200FD7C006401700685264E85255D +:1002A2004DED4C7013E54EC3954D400AC201854E8B +:1002B20026854D258002D201EF64054E7005A2000D +:1002C200B39200E5516401704E200026E5226406D7 +:1002D200700B054DE54D75F0648485F04DE52264A3 +:1002E200077034E54D70047F638004E54D14FF8F81 +:1002F2004D22E5226406700B054EE54E75F06484CE +:1003020085F04EE5226407700EE54E70047F63802F +:0703120004E54E14FF8F4EBD +:0103190022C1 +:10031A00E54B60030203AD754B011205CF12015282 +:10032A0012052E8F53E553D3952640047FCC800DBA +:10033A00E553C3952550047F6680027F991207D83A +:10034A00E55114602604705B75430B7E007F057DC2 +:10035A000A7B007A007944120236E55375F00A8462 +:10036A0075F00A8485F049E553803175430C75456B +:10037A000A75440AE54E75F00A8475F00A8485F018 +:10038A0046E54E75F00A8485F04775480AE54D75CD +:10039A00F00A8475F00A8485F049E54D75F00A84FF +:0403AA0085F04A226E +:10060A00E553D3952640047F0180027F008F56E58B +:10061A0053C3952550047F0180027F008F57E5530D +:10062A00C39526500AE553952540047F0180027F31 +:0A063A00008F58A201E433F55922A5 +:10082100538E7F5389F0758A18758CFCC28DD28CDA +:05083100D2A9D2AF22A4 +:03000B0002043AB2 +:10043A00C0E0C0F0C083C082C0D075D000C000C088 +:10044A0001C002C003C004C005C006C007054CE5D0 +:10045A004C640A7002F54C054BAF4B7E00BE010698 +:10046A00BFF403754B000550E55064087002F5505F +:10047A0074432550F8E6FD74272550F8E6FBAF5083 +:10048A0012067E74562550F8E6FDAF50120644D087 +:10049A0007D006D005D004D003D002D001D000D0B6 +:0A04AA00D0D082D083D0F0D0E03231 +:0E084B0000007F237E337DB6DDFEDEFCDFFA8B +:01085900227C +:10080A001207A11208211205CF12084B1202621216 +:07081A00031A12060A80F523 +:0605AF00011D00011EFF0A +:10064400ED600FA8077401088002C333D8FC421D73 +:10065400800EA8077401088002C333D8FCF4521D2D +:10066400E51D651E6013E51DF4F580E5A0541F44E7 +:0906740080F5A053A01F851D1E96 +:01067D00225A +:1005B5000D08C0F9A4B0999282F88090FFC68C0806 +:0905C50015010204081020408019 +:10067E007580FFE5A0541F44E0F5A074152FF8E631 +:10068E00F580E5A0541F44C0F5A053A01F74082D9B +:10069E00F8E6F580EB600353807FE5A0541F44E03D +:0606AE00F5A053A01F227D +:1004B400E4FFC2A9C2C4D2C2D2B5D2B420B3027F6F +:1004C4000420B2027F0520B1027F0620B0027F071C +:1004D400D2C4C2C2D2B5D2B420B3027F0820B202C1 +:1004E4007F0920B1027F0A20B0027F0BD2C4D2C29E +:1004F400C2B5D2B420B3027F0C20B2027F0D20B16A +:10050400027F0E20B0027F0FD2C4D2C2D2B5C2B4D1 +:1005140020B3027F1020B2027F1120B1027F12208B +:09052400B0027F13D2A975B0FFEB +:01052D0022AB +:1007A1007580FFE5A0541F4480F5A053A01FE4F518 +:0D07B10080E5A0541F44A0F5A053A01F2216 +:0407BE00D2A07F0541 +:1007C200000000000000000000000000000000AE79 +:0607D200071FEE70EB2290 +:0F085A00D2A11207BEC2A17F051207C2C2A022FF +:0C086900C2A11207BED2A17F050207C287 +:0206B400AD0790 +:1006B600E4FCECC39408748094805024C2A07F05A7 +:1006C6001207C2ED30E704D2A18002C2A17F051253 +:1006D60007C2D2A0ED25E0FD7F051207C20C80D22D +:0206E600C2A0B0 +:0106E80022EF +:10073700E4FCECC394087480948050171207BEED54 +:1007470025E0FD30A103430501C2A07F051207C2C2 +:050757000C80DFAF057E +:01075C00227A +:030836001206B4F3 +:100839001207BEA2A1E433FDC2A07F051207C2AF11 +:0108490005A9 +:01084A00228B +:1007F200C2A0EF24FF92A17F051207C21207BEC258 +:08080200A0D2A17F050207C28C +:1007D800AB0712085A7F901208367F41120836AFCD +:0A07E800031206B412083902086972 +:0600030000007F09DFFE92 +:0100090022D4 +:040783007F057E0070 +:10078700EF1FAA0670011E4A600FE4FDEDC3940C2B +:090797007480948050EA0D80F397 +:0107A0002236 +:0206E900A9075F +:1006EB00E4FBEBC39408748094805012C294E9131A +:1006FB009294120783D294E9C313F90B80E47F051C +:05070B007E00020787DB +:10075D00E4FBEBC39408748094805017C294ECC3EF +:10076D0013FCD294120003309403430480120783C8 +:05077D000B80DFAF045A +:010782002254 +:10071000C202D2947F0C7E00120787C2947F507E63 +:1007200000120787D2947F0A7E00120787A2949254 +:0607300002120783A20281 +:0107360022A0 +:1005CF001207107FCC1206E97F441206E97FC87E1E +:1005DF00001207871207107FCC1206E97FBE1206A2 +:1005EF00E912075DA90712075DEFAD01FCEC1201DF +:0B05FF0019E4FBFA7980783D02000E41 +:10000E00EC4D6011E8497017ED33EC3304600DE4EC +:10001E00FCFFFEFD22E933E8330470F80201BE1244 +:10002E00018958046009E4CC248150062850090245 +:10003E0001C82840030201C5C0E0EB4A7044B980F4 +:10004E0006D0E0FB0201B4EF4E701CBD8008EBFF42 +:10005E00EAFEE9FD80EBE98DF0A4FEE5F00200F783 +:10006E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89CD +:10007E00F0A42EFFE435F0CD89F0A42DFEE435F08A +:10008E008067EF4E7005BD80D780C3EF8BF0A4ACB8 +:10009E00F0EE8BF0A42CFCE435F0F8EF8AF0A42CF3 +:1000AE00E5F038FCE433CB8DF0A42CFCE5F03BF806 +:1000BE00EE8AF0A42CFCE5F038F8E433CF89F0A4F6 +:1000CE002CFCE5F038CF3400CE89F0A42FFFE5F0FC +:1000DE003EFEE433C98DF0A42EFEE5F039CD8AF054 +:1000EE00A42FFFE5F03EFEE43DFD33D0E0FB5007CC +:1000FE000BBB000F0201C8EC2CFCEF33FFEE33FEFE +:06010E00ED33FD0201A02B +:1001140075F020800E75F010800575F0087D007E66 +:10012400007F003392D530D503120228EC334010FF +:10013400EF33FFEE33FEED33FDEC33FCD5F0ED226F +:0E014400E5F0247EA2D513CC92E7CDCEFF22AB +:10015200EDD2E7CD33EC3392D524814006E4FFFEA5 +:10016200FDFC22FCE4CFCECDCC24E0501174FF8004 +:10017200EDC3CC13CCCD13CDCE13CECF13CF0470A1 +:07018200F030D5DE02022877 +:10018900E9D2E7C933E833F892D5EDD2E7CD33ECBC +:0701990033FC5002B2D52235 +:1001A000EC30E7100FBF000C0EBE00080DBD0004C0 +:1001B0000BEB6014A2D5EB13FCED92E7FD2274FF6C +:1001C000FCFDFEFF22E480F8A2D574FF13FC7D80C5 +:0301D000E480EFD9 +:030000000203AE4A +:0C03AE00787FE4F6D8FD75815D0203F550 +:1001D300BC000BBE0029EF8DF084FFADF022E4CC10 +:1001E300F875F008EF2FFFEE33FEEC33FCEE9DECD9 +:1001F300984005FCEE9DFE0FD5F0E9E4CEFD22ED1F +:10020300F8F5F0EE8420D21CFEADF075F008EF2F68 +:10021300FFED33FD4007985006D5F0F222C398FD59 +:050223000FD5F0EA22F6 +:0E022800C3E49FFFE49EFEE49DFDE49CFC22E7 +:10023600EF4E6012EF60010EEDBB010B89828A83DF +:10024600F0A3DFFCDEFA2289F05007F709DFFCA9EC +:0C025600F022BBFEFCF309DFFCA9F02243 +:1003BA0002080AE493A3F8E493A34003F68001F247 +:1003CA0008DFF48029E493A3F85407240CC8C33344 +:1003DA00C4540F4420C8834004F456800146F6DF13 +:1003EA00E4800B010204081020408090058BE47E13 +:1003FA00019360BCA3FF543F30E509541FFEE49308 +:10040A00A360010ECF54C025E060A840B8E493A3CE +:10041A00FAE493A3F8E493A3C8C582C8CAC583CAF9 +:10042A00F0A3C8C582C8CAC583CADFE9DEE780BEB1 +:0105CE00002C +:00000001FF diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan.lnp b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan.lnp new file mode 100644 index 0000000..fcba125 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/Objects/zuolan.lnp @@ -0,0 +1,9 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\iic.obj", +".\Objects\onewire.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/main.c b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/main.c new file mode 100644 index 0000000..b8bf1a3 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/main.c @@ -0,0 +1,199 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ̷ */ +uchar Key_Slow_Down; + +/* ʾ */ +uchar Seg_show_mode; // 0 ʾ 1 +/* */ +uchar T_value; // ¶Ȳ +uchar T_para_max = 30, T_para_min = 20; // ¶Ȳ +uchar T_para_max_set, T_para_min_set; // ¶Ȳ +/* ж */ +bit para_mode; // 0 ѡ¶ 1ѡ¶ +bit error_data_set; // +#define N 10 +uint data_array[N]; // ڴС +uint sum_temp; // ܺ +uchar index_temp; // +uchar arr_count; // + +uint filter(uint new_data) +{ + sum_temp -= data_array[index_temp]; + data_array[index_temp] = new_data; + sum_temp += data_array[index_temp]; + index_temp = (++index_temp) % N; // ֤index_temp0~N-1֮ת + arr_count = (++arr_count == N + 1) ? N : arr_count; // еԪظ + return sum_temp / arr_count; +} + +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 4) + { + Seg_show_mode = (++Seg_show_mode) % 2; + para_mode = 0; + if (Seg_show_mode == 1) + { + // ֵֵ + T_para_max_set = T_para_max; + T_para_min_set = T_para_min; + } + if (Seg_show_mode == 0) + { + // вж + if (T_para_max_set >= T_para_min_set) + { + error_data_set = 0; + T_para_max = T_para_max_set; + T_para_min = T_para_min_set; + } + else + { + error_data_set = 1; + } + } + } + if (Key_Down == 5) + para_mode ^= 1; + if (Seg_show_mode == 1) + { + if (para_mode == 0) + { + // ¶ + if (Key_Down == 6) + T_para_min_set = (++T_para_min_set) % 100; + if (Key_Down == 7) + T_para_min_set = (T_para_min_set == 0) ? 99 : T_para_min_set - 1; + } + else + { + // ¶ + if (Key_Down == 6) + T_para_max_set = (++T_para_max_set) % 100; + if (Key_Down == 7) + T_para_max_set = (T_para_max_set == 0) ? 99 : T_para_max_set - 1; + } + } +} +/* ܴ */ +void Seg_Proc() +{ + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + T_value = filter(rd_temperature()); + if (T_value > T_para_max) + Da_Write(4 * 51); + else if (T_value < T_para_min) + Da_Write(2 * 51); + else + Da_Write(3 * 51); + switch (Seg_show_mode) + { + case 0: + /* ʾ */ + Seg_Buf[0] = 11; // C + memset(Seg_Buf + 1, 10, 5); + Seg_Buf[6] = T_value / 10 % 10; + Seg_Buf[7] = T_value % 10; + break; + + case 1: + /* */ + Seg_Buf[0] = 12; // P + Seg_Buf[1] = Seg_Buf[2] = 10; + Seg_Buf[3] = T_para_max_set / 10 % 10; + Seg_Buf[4] = T_para_max_set % 10; + Seg_Buf[5] = 10; + Seg_Buf[6] = T_para_min_set / 10 % 10; + Seg_Buf[7] = T_para_min_set % 10; + break; + } +} + +/* LED */ +void Led_Proc() +{ + ucLed[0] = (T_value > T_para_max); + ucLed[1] = (T_value < T_para_min); + ucLed[2] = (T_value < T_para_max && T_value > T_para_min); + ucLed[3] = error_data_set; +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} +void main() +{ + System_Init(); + Timer0_Init(); + rd_temperature(); + Delay750ms(); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/main.h b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/main.h new file mode 100644 index 0000000..f9d4b33 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/main.h @@ -0,0 +1,12 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "iic.h" +#include "onewire.h" +#include "Init.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/zuolan.uvgui.haze b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/zuolan.uvgui.haze new file mode 100644 index 0000000..8a2bbe7 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/zuolan.uvgui.haze @@ -0,0 +1,1369 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -32000 + -32024 + + + -1 + -1 + + + 302 + 282 + 1434 + 790 + + + + 0 + + 310 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF2D433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E000000000600002D020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100007E00000070040000EB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000001602000000060000E5020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000EB000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000CF010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000FE010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100004E020000000000004F00000090010000FE0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000BF01000070040000400200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FE010000000600000202000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000520200000006000035030000000000000202000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2002 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 1 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 26 + 1 + 24 + 1 + + 0 + + + .\main.c + 22 + 1 + 7 + 1 + + 0 + + + + +
diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/zuolan.uvopt b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/zuolan.uvopt new file mode 100644 index 0000000..a43411c --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/zuolan.uvopt @@ -0,0 +1,258 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + -1 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + +
diff --git a/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/zuolan.uvproj b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/zuolan.uvproj new file mode 100644 index 0000000..4deb906 --- /dev/null +++ b/题目/真题/11 第十一届省赛_左岚/第二套/第十一届省赛2/User/zuolan.uvproj @@ -0,0 +1,410 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + iic.c + 1 + ..\Driver\iic.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + + + + + +
diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛.png b/题目/真题/12 第十二届国赛_左岚/第十二届国赛.png new file mode 100644 index 0000000..03f7278 Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛.png differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/.vscode/settings.json b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/.vscode/settings.json new file mode 100644 index 0000000..04260f9 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "stc15f2k60s2.h": "c" + } +} \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Init.c b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Init.h b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Key.c b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Key.c new file mode 100644 index 0000000..dbf9fe3 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Key.c @@ -0,0 +1,43 @@ +#include + +unsigned char Key_Read() +{ + unsigned char temp = 0; + //1 + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if(P33 == 0) temp = 4; + if(P32 == 0) temp = 5; + if(P31 == 0) temp = 6; + if(P30 == 0) temp = 7; + //2 + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if(P33 == 0) temp = 8; + if(P32 == 0) temp = 9; + if(P31 == 0) temp = 10; + if(P30 == 0) temp = 11; + //3 + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if(P33 == 0) temp = 12; + if(P32 == 0) temp = 13; + if(P31 == 0) temp = 14; + if(P30 == 0) temp = 15; + //4 + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if(P33 == 0) temp = 16; + if(P32 == 0) temp = 17; + if(P31 == 0) temp = 18; + if(P30 == 0) temp = 19; + return temp; +} \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Key.h b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Key.h new file mode 100644 index 0000000..898c524 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Key.h @@ -0,0 +1,3 @@ +#include + +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Led.c b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Led.c new file mode 100644 index 0000000..f1df0fe --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Led.c @@ -0,0 +1,56 @@ +#include +//ַ0-7Ƿʹ +void Led_Disp(unsigned char addr,enable) +{ + //ֵ֤Ϊı + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + //ĵǰ״̬ + if(enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + //ǰ״̬֮ǰ״̬ͬвled + if(temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} + + +void Beep(unsigned char flag) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if(flag) + temp |= 0x40; + else + temp &= ~0x40; + if(temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} + +void Relay(unsigned char flag) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if(flag) + temp |= 0x10; + else + temp &= ~0x10; + if(temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Led.h b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Led.h new file mode 100644 index 0000000..493bdf6 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Led.h @@ -0,0 +1,5 @@ +#include + +void Led_Disp(unsigned char addr,enable); +void Beep(unsigned char flag); +void Relay(unsigned char flag); \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Seg.c b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Seg.c new file mode 100644 index 0000000..a4bdb32 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Seg.c @@ -0,0 +1,22 @@ +#include +// ѡ 0 1 2 3 4 5 6 7 8 9 L F C H - - - P +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0xc7, 0x8e, 0xc6, 0x89, 0xfe, 0xbf, 0xf7, 0x8c}; +// λѡ 2^0,2^1,2^2,2^3,2^4,2^52^6,2^7һ˸ +unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + +void Seg_Disp(unsigned char wela, dula, point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Seg.h b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Seg.h new file mode 100644 index 0000000..3c5c898 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/Seg.h @@ -0,0 +1,3 @@ +#include + +void Seg_Disp(unsigned char wela,dula,point); \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ds1302.c b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ds1302.c new file mode 100644 index 0000000..a7a2946 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ds1302.c @@ -0,0 +1,86 @@ +#include "ds1302.h" +#include +#include + +sbit SCK = P1 ^ 7; +sbit SDA = P2 ^ 3; +sbit RST = P1 ^ 3; + +// дֽ +void Write_Ds1302(unsigned char temp) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + SCK = 0; + SDA = temp & 0x01; + temp >>= 1; // һλһλд + SCK = 1; + } +} + +// DS1302Ĵд +void Write_Ds1302_Byte(unsigned char address, unsigned char dat) +{ + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST = 0; +} + +// DS1302Ĵ +unsigned char Read_Ds1302_Byte(unsigned char address) +{ + unsigned char i, temp = 0x00; + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + for (i = 0; i < 8; i++) + { + SCK = 0; + temp >>= 1; + if (SDA) + temp |= 0x80; + SCK = 1; + } + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + SCK = 1; + _nop_(); + SDA = 0; + _nop_(); + SDA = 1; + _nop_(); + return (temp); +} + +void Set_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + Write_Ds1302_Byte(0x8e, 0x00); + for (i = 0; i < 3; i++) + { + Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + } + Write_Ds1302_Byte(0x8e, 0x80); +} + +void Read_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + for (i = 0; i < 3; i++) + { + ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + } +} \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ds1302.h b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ds1302.h new file mode 100644 index 0000000..bb8f991 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ds1302.h @@ -0,0 +1,12 @@ +#ifndef __DS1302_H +#define __DS1302_H + + + +void Write_Ds1302(unsigned char temp); +void Write_Ds1302_Byte( unsigned char address,unsigned char dat ); +unsigned char Read_Ds1302_Byte( unsigned char address ); +void Set_Rtc(unsigned char* ucRtc); +void Read_Rtc(unsigned char* ucRtc); + +#endif diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/iic.c b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/iic.c new file mode 100644 index 0000000..0135cf3 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/iic.c @@ -0,0 +1,196 @@ +/* + ˵: IIC + : Keil uVision 4.10 + Ӳ: CT107Ƭۺʵѵƽ̨ 805112MHz + : 2011-8-9 +*/ + +#include "iic.h" + + +#include "intrins.h" + +#define DELAY_TIME 5 + +#define Photo_Res_Channel 0x41 +#define Adj_Res_Channel 0x43 + + +//Ŷ +sbit SDA = P2^1; /* */ +sbit SCL = P2^0; /* ʱ */ + +void IIC_Delay(unsigned char i) +{ + do { + _nop_(); + } + while(i--); +} + +// +void IIC_Start(void) +{ + SDA = 1; + SCL = 1; + IIC_Delay(DELAY_TIME); + SDA = 0; + IIC_Delay(DELAY_TIME); + SCL = 0; +} + +//ֹͣ +void IIC_Stop(void) +{ + SDA = 0; + SCL = 1; + IIC_Delay(DELAY_TIME); + SDA = 1; + IIC_Delay(DELAY_TIME); +} + +//Ӧ +void IIC_SendAck(bit ackbit) +{ + SCL = 0; + SDA = ackbit; // 0Ӧ1Ӧ + IIC_Delay(DELAY_TIME); + SCL = 1; + IIC_Delay(DELAY_TIME); + SCL = 0; + SDA = 1; + IIC_Delay(DELAY_TIME); +} + +//ȴӦ +bit IIC_WaitAck(void) +{ + bit ackbit; + + SCL = 1; + IIC_Delay(DELAY_TIME); + ackbit = SDA; + SCL = 0; + IIC_Delay(DELAY_TIME); + return ackbit; +} + +//ͨI2C߷ +void IIC_SendByte(unsigned char byt) +{ + unsigned char i; + + for(i=0; i<8; i++) + { + SCL = 0; + IIC_Delay(DELAY_TIME); + if(byt & 0x80) SDA = 1; + else SDA = 0; + IIC_Delay(DELAY_TIME); + SCL = 1; + byt <<= 1; + IIC_Delay(DELAY_TIME); + } + SCL = 0; +} + +//I2CϽ +unsigned char IIC_RecByte(void) +{ + unsigned char i, da; + for(i=0; i<8; i++) + { + SCL = 1; + IIC_Delay(DELAY_TIME); + da <<= 1; + if(SDA) da |= 1; + SCL = 0; + IIC_Delay(DELAY_TIME); + } + return da; +} + + + + + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + IIC_Start(); + IIC_SendByte(0x90); + IIC_WaitAck(); + IIC_SendByte(addr); + IIC_WaitAck(); + IIC_Start(); + IIC_SendByte(0x91); + IIC_WaitAck(); + temp = IIC_RecByte(); + IIC_SendAck(1); + IIC_Stop(); + return temp; +} + +void Da_Write(unsigned char dat) +{ + IIC_Start(); + IIC_SendByte(0x90); + IIC_WaitAck(); + IIC_SendByte(0x41); + IIC_WaitAck(); + IIC_SendByte(dat); + IIC_WaitAck(); + IIC_Stop(); +} + + + +//дEEPROM +//ڲҪдַдĵַ(Ϊ8ı)д +//ֵ +//ܣEERPOMijַдַضַ +void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) +{ + IIC_Start();//Ϳź + IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + IIC_WaitAck();//ȴEEPROM + + IIC_SendByte(addr);//дҪ洢ݵַ + IIC_WaitAck();//ȴEEPROM + + while(num--) + { + IIC_SendByte(*EEPROM_String++);//ҪдϢд + IIC_WaitAck();//ȴEEPROM + IIC_Delay(200); + } + IIC_Stop();//ֹͣ +} + + +//EEPROM +//ڲҪ洢ַȡĵַ(Ϊ8ı)ȡ +//ֵ +//ܣȡEERPOMijַеݣַС +void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) +{ + IIC_Start();//Ϳź + IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + IIC_WaitAck();//ȴEEPROM + + IIC_SendByte(addr);//дҪȡݵַ + IIC_WaitAck();//ȴEEPROM + + IIC_Start();//Ϳź + IIC_SendByte(0xA1);//ѡEEPROMоƬȷģʽ + IIC_WaitAck();//ȴEEPROM + + while(num--) + { + *EEPROM_String++ = IIC_RecByte();//ҪдϢд + if(num) IIC_SendAck(0);//Ӧ + else IIC_SendAck(1);//Ӧ + } + + IIC_Stop();//ֹͣ +} \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/iic.h b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/iic.h new file mode 100644 index 0000000..f51a055 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/iic.h @@ -0,0 +1,23 @@ +# include "STC15F2K60S2.H" + + +void IIC_Start(void); +void IIC_Stop(void); +bit IIC_WaitAck(void); +void IIC_SendAck(bit ackbit); +void IIC_SendByte(unsigned char byt); +unsigned char IIC_RecByte(void); +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); +//函数名:写EEPROM函数 +//入口参数:需要写入的字符串,写入的地址(务必为8的倍数),写入数量 +//返回值:无 +//函数功能:向EERPOM的某个地址写入字符串中特定数量的字符。 +void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num); + + +//函数名:读EEPROM函数 +//入口参数:读到的数据需要存储的字符串,读取的地址(务必为8的倍数),读取的数量 +//返回值:无 +//函数功能:读取EERPOM的某个地址中的数据,并存放在字符串数组中。 +void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/onewire.c b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/onewire.c new file mode 100644 index 0000000..97d39c4 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/onewire.c @@ -0,0 +1,77 @@ +#include "onewire.h" +#include "reg52.h" + +sbit DQ = P1 ^ 4; + +// ڲʱ +void Delay_OneWire(unsigned int t) +{ + t *= 12; + while (t--) + ; +} + +// д +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; // һһд + } + Delay_OneWire(5); +} + +// ߶ +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + if (DQ) + { + dat |= 0x80; // һһȡ + } + Delay_OneWire(5); + } + return dat; +} + +// DS18B20ʼ +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); // ʼ + Write_DS18B20(0xcc); // ROM + Write_DS18B20(0x44); // ¶ת + init_ds18b20(); // ʼ + Write_DS18B20(0xcc); // ROM + Write_DS18B20(0xbe); // ȡ¶ + low = Read_DS18B20(); // λ + high = Read_DS18B20(); // λ + return ((high << 8) | low) / 16.0; +} \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/onewire.h b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/onewire.h new file mode 100644 index 0000000..8df55c8 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/onewire.h @@ -0,0 +1,5 @@ +#ifndef __ONEWIRE_H +#define __ONEWIRE_H + +float rd_temperature(void); +#endif diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ultrasound.c b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ultrasound.c new file mode 100644 index 0000000..448eb39 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ultrasound.c @@ -0,0 +1,48 @@ +#include +#include "intrins.h" + +sbit Tx = P1^0; +sbit Rx = P1^1; + +void Delay12us() //@12.000MHz +{ + unsigned char i; + + _nop_(); + _nop_(); + i = 38; + while (--i); +} + +void Ut_Wave_Init() //��������ʼ������ ����8��40Mhz�ķ����ź� +{ + unsigned char i; + for(i=0; i<8; i++) + { + Tx = 1; + Delay12us(); + Tx = 0; + Delay12us(); + } +} + +unsigned char Ut_Wave_Data() //超声波距离读取函数 +{ + unsigned int time;//时间储存变量 + CMOD = 0x00;//配置PCA工作模式 + CH = CL = 0;//复位计数值 等待超声波信号发出 + Ut_Wave_Init();//发送超声波信号 + CR = 1;//开始计时 + while((Rx == 1) && (CF == 0));//等待接受返回信号或者定时器溢出 + CR = 0;//停止计时 + if(CF == 0) //定时器没有溢出 + { + time = CH << 8 | CL;//读取当前时间 + return (time * 0.017);//返回距离值 + } + else + { + CF = 0;//清除溢出标志位 + return 0; + } +} diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ultrasound.h b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ultrasound.h new file mode 100644 index 0000000..1014dd8 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/Driver/ultrasound.h @@ -0,0 +1,3 @@ +#include + +unsigned char Ut_Wave_Data(); \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Init.lst b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Init.lst new file mode 100644 index 0000000..c76d3bf --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 02/03/2024 20:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Key.lst b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Key.lst new file mode 100644 index 0000000..b181f70 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Key.lst @@ -0,0 +1,69 @@ +C51 COMPILER V9.59.0.0 KEY 02/03/2024 20:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include + 2 + 3 unsigned char Key_Read() + 4 { + 5 1 unsigned char temp = 0; + 6 1 //1 + 7 1 P44 = 0; + 8 1 P42 = 1; + 9 1 P35 = 1; + 10 1 P34 = 1; + 11 1 if(P33 == 0) temp = 4; + 12 1 if(P32 == 0) temp = 5; + 13 1 if(P31 == 0) temp = 6; + 14 1 if(P30 == 0) temp = 7; + 15 1 //2 + 16 1 P44 = 1; + 17 1 P42 = 0; + 18 1 P35 = 1; + 19 1 P34 = 1; + 20 1 if(P33 == 0) temp = 8; + 21 1 if(P32 == 0) temp = 9; + 22 1 if(P31 == 0) temp = 10; + 23 1 if(P30 == 0) temp = 11; + 24 1 //3 + 25 1 P44 = 1; + 26 1 P42 = 1; + 27 1 P35 = 0; + 28 1 P34 = 1; + 29 1 if(P33 == 0) temp = 12; + 30 1 if(P32 == 0) temp = 13; + 31 1 if(P31 == 0) temp = 14; + 32 1 if(P30 == 0) temp = 15; + 33 1 //4 + 34 1 P44 = 1; + 35 1 P42 = 1; + 36 1 P35 = 1; + 37 1 P34 = 0; + 38 1 if(P33 == 0) temp = 16; + 39 1 if(P32 == 0) temp = 17; + 40 1 if(P31 == 0) temp = 18; + 41 1 if(P30 == 0) temp = 19; + 42 1 return temp; + 43 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 115 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + C51 COMPILER V9.59.0.0 KEY 02/03/2024 20:57:34 PAGE 2 + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Led.lst b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Led.lst new file mode 100644 index 0000000..5adb5d5 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Led.lst @@ -0,0 +1,82 @@ +C51 COMPILER V9.59.0.0 LED 02/03/2024 20:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include + 2 //ַ0-7Ƿʹ + 3 void Led_Disp(unsigned char addr,enable) + 4 { + 5 1 //ֵ֤Ϊı + 6 1 static unsigned char temp = 0x00; + 7 1 static unsigned char temp_old = 0xff; + 8 1 //ĵǰ״̬ + 9 1 if(enable) + 10 1 temp |= 0x01 << addr; + 11 1 else + 12 1 temp &= ~(0x01 << addr); + 13 1 //ǰ״̬֮ǰ״̬ͬвled + 14 1 if(temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 + 23 + 24 void Beep(unsigned char flag) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if(flag) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~0x40; + 32 1 if(temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 + 41 void Relay(unsigned char flag) + 42 { + 43 1 static unsigned char temp = 0x00; + 44 1 static unsigned char temp_old = 0xff; + 45 1 if(flag) + 46 1 temp |= 0x10; + 47 1 else + 48 1 temp &= ~0x10; + 49 1 if(temp != temp_old) + 50 1 { + 51 2 P0 = temp; + 52 2 P2 = P2 & 0x1f | 0xa0; + 53 2 P2 &= 0x1f; + 54 2 temp_old = temp; + C51 COMPILER V9.59.0.0 LED 02/03/2024 20:57:34 PAGE 2 + + 55 2 } + 56 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 129 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 6 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Seg.lst b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Seg.lst new file mode 100644 index 0000000..fcc9cff --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Seg.lst @@ -0,0 +1,46 @@ +C51 COMPILER V9.59.0.0 SEG 02/03/2024 20:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 L F C H - - - P + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0xc7, 0x8e, 0xc6, 0x89, 0xfe, 0xbf, 0xf7, 0x8c}; + 5 // λѡ 2^0,2^1,2^2,2^3,2^4,2^52^6,2^7һ˸ + 6 unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 + 8 void Seg_Disp(unsigned char wela, dula, point) + 9 { + 10 1 // ֶ + 11 1 P0 = 0xff; + 12 1 P2 = P2 & 0x1f | 0xe0; + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 P0 = seg_dula[dula]; + 18 1 if (point) + 19 1 P0 &= 0x7f; + 20 1 P2 = P2 & 0x1f | 0xe0; + 21 1 P2 &= 0x1f; + 22 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 55 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 27 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Uart.lst b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Uart.lst new file mode 100644 index 0000000..5bd7842 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/Uart.lst @@ -0,0 +1,60 @@ +C51 COMPILER V9.59.0.0 UART 01/30/2024 15:23:39 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include + 2 + 3 /* 串口初始化函数 */ + 4 void UartInit(void) //9600bps@12.000MHz + 5 { + 6 1 SCON = 0x50; //8位数据,可变波特率 + 7 1 AUXR |= 0x01; //串口1选择定时器2为波特率发生器 + 8 1 AUXR |= 0x04; //定时器时钟1T模式 + 9 1 T2L = 0xC7; //设置定时初始值 + 10 1 T2H = 0xFE; //设置定时初始值 + 11 1 AUXR |= 0x10; //定时器2开始计时 + 12 1 ES = 1; + 13 1 EA = 1; + 14 1 } + 15 + 16 /* putchar重定向 */ + 17 extern char putchar(char ch) + 18 { + 19 1 SBUF= ch;//将dat数据赋给SBUF,将数据发送出去 + 20 1 while(TI == 0);//等待数据发送 + 21 1 TI = 0;//将发送标志位清零 + 22 1 return (ch); + 23 1 } + 24 void SendByte(unsigned char dat) + 25 { + 26 1 SBUF = dat; + 27 1 while (TI == 0) // 等待发送 + 28 1 ; + 29 1 TI = 0; // 将发送标志清零,准备下一次发送 + 30 1 } + 31 + 32 void Uart_Sent_String(unsigned char *dat) + 33 { + 34 1 while (*dat != "\0") + 35 1 SendByte(*dat++); + 36 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 82 ---- + CONSTANT SIZE = 2 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 3 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/ds1302.lst b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/ds1302.lst new file mode 100644 index 0000000..2a9f98c --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/ds1302.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 DS1302 02/03/2024 20:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 #include "ds1302.h" + 2 #include + 3 #include + 4 + 5 sbit SCK = P1 ^ 7; + 6 sbit SDA = P2 ^ 3; + 7 sbit RST = P1 ^ 3; + 8 + 9 // дֽ + 10 void Write_Ds1302(unsigned char temp) + 11 { + 12 1 unsigned char i; + 13 1 for (i = 0; i < 8; i++) + 14 1 { + 15 2 SCK = 0; + 16 2 SDA = temp & 0x01; + 17 2 temp >>= 1; // һλһλд + 18 2 SCK = 1; + 19 2 } + 20 1 } + 21 + 22 // DS1302Ĵд + 23 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 24 { + 25 1 RST = 0; + 26 1 _nop_(); + 27 1 SCK = 0; + 28 1 _nop_(); + 29 1 RST = 1; + 30 1 _nop_(); + 31 1 Write_Ds1302(address); + 32 1 Write_Ds1302(dat); + 33 1 RST = 0; + 34 1 } + 35 + 36 // DS1302Ĵ + 37 unsigned char Read_Ds1302_Byte(unsigned char address) + 38 { + 39 1 unsigned char i, temp = 0x00; + 40 1 RST = 0; + 41 1 _nop_(); + 42 1 SCK = 0; + 43 1 _nop_(); + 44 1 RST = 1; + 45 1 _nop_(); + 46 1 Write_Ds1302(address); + 47 1 for (i = 0; i < 8; i++) + 48 1 { + 49 2 SCK = 0; + 50 2 temp >>= 1; + 51 2 if (SDA) + 52 2 temp |= 0x80; + 53 2 SCK = 1; + 54 2 } + C51 COMPILER V9.59.0.0 DS1302 02/03/2024 20:57:34 PAGE 2 + + 55 1 RST = 0; + 56 1 _nop_(); + 57 1 SCK = 0; + 58 1 _nop_(); + 59 1 SCK = 1; + 60 1 _nop_(); + 61 1 SDA = 0; + 62 1 _nop_(); + 63 1 SDA = 1; + 64 1 _nop_(); + 65 1 return (temp); + 66 1 } + 67 + 68 void Set_Rtc(unsigned char *ucRtc) + 69 { + 70 1 unsigned char i; + 71 1 Write_Ds1302_Byte(0x8e, 0x00); + 72 1 for (i = 0; i < 3; i++) + 73 1 { + 74 2 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 75 2 } + 76 1 Write_Ds1302_Byte(0x8e, 0x80); + 77 1 } + 78 + 79 void Read_Rtc(unsigned char *ucRtc) + 80 { + 81 1 unsigned char i; + 82 1 for (i = 0; i < 3; i++) + 83 1 { + 84 2 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 85 2 } + 86 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/iic.lst b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/iic.lst new file mode 100644 index 0000000..badd942 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/iic.lst @@ -0,0 +1,226 @@ +C51 COMPILER V9.59.0.0 IIC 02/03/2024 20:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* + 2 ˵: IIC + 3 : Keil uVision 4.10 + 4 Ӳ: CT107Ƭۺʵѵƽ̨ 805112MHz + 5 : 2011-8-9 + 6 */ + 7 + 8 #include "iic.h" + 9 + 10 + 11 #include "intrins.h" + 12 + 13 #define DELAY_TIME 5 + 14 + 15 #define Photo_Res_Channel 0x41 + 16 #define Adj_Res_Channel 0x43 + 17 + 18 + 19 //Ŷ + 20 sbit SDA = P2^1; /* */ + 21 sbit SCL = P2^0; /* ʱ */ + 22 + 23 void IIC_Delay(unsigned char i) + 24 { + 25 1 do { + 26 2 _nop_(); + 27 2 } + 28 1 while(i--); + 29 1 } + 30 + 31 // + 32 void IIC_Start(void) + 33 { + 34 1 SDA = 1; + 35 1 SCL = 1; + 36 1 IIC_Delay(DELAY_TIME); + 37 1 SDA = 0; + 38 1 IIC_Delay(DELAY_TIME); + 39 1 SCL = 0; + 40 1 } + 41 + 42 //ֹͣ + 43 void IIC_Stop(void) + 44 { + 45 1 SDA = 0; + 46 1 SCL = 1; + 47 1 IIC_Delay(DELAY_TIME); + 48 1 SDA = 1; + 49 1 IIC_Delay(DELAY_TIME); + 50 1 } + 51 + 52 //Ӧ + 53 void IIC_SendAck(bit ackbit) + 54 { + C51 COMPILER V9.59.0.0 IIC 02/03/2024 20:57:34 PAGE 2 + + 55 1 SCL = 0; + 56 1 SDA = ackbit; // 0Ӧ1Ӧ + 57 1 IIC_Delay(DELAY_TIME); + 58 1 SCL = 1; + 59 1 IIC_Delay(DELAY_TIME); + 60 1 SCL = 0; + 61 1 SDA = 1; + 62 1 IIC_Delay(DELAY_TIME); + 63 1 } + 64 + 65 //ȴӦ + 66 bit IIC_WaitAck(void) + 67 { + 68 1 bit ackbit; + 69 1 + 70 1 SCL = 1; + 71 1 IIC_Delay(DELAY_TIME); + 72 1 ackbit = SDA; + 73 1 SCL = 0; + 74 1 IIC_Delay(DELAY_TIME); + 75 1 return ackbit; + 76 1 } + 77 + 78 //ͨI2C߷ + 79 void IIC_SendByte(unsigned char byt) + 80 { + 81 1 unsigned char i; + 82 1 + 83 1 for(i=0; i<8; i++) + 84 1 { + 85 2 SCL = 0; + 86 2 IIC_Delay(DELAY_TIME); + 87 2 if(byt & 0x80) SDA = 1; + 88 2 else SDA = 0; + 89 2 IIC_Delay(DELAY_TIME); + 90 2 SCL = 1; + 91 2 byt <<= 1; + 92 2 IIC_Delay(DELAY_TIME); + 93 2 } + 94 1 SCL = 0; + 95 1 } + 96 + 97 //I2CϽ + 98 unsigned char IIC_RecByte(void) + 99 { + 100 1 unsigned char i, da; + 101 1 for(i=0; i<8; i++) + 102 1 { + 103 2 SCL = 1; + 104 2 IIC_Delay(DELAY_TIME); + 105 2 da <<= 1; + 106 2 if(SDA) da |= 1; + 107 2 SCL = 0; + 108 2 IIC_Delay(DELAY_TIME); + 109 2 } + 110 1 return da; + 111 1 } + 112 + 113 + 114 + 115 + 116 + C51 COMPILER V9.59.0.0 IIC 02/03/2024 20:57:34 PAGE 3 + + 117 unsigned char Ad_Read(unsigned char addr) + 118 { + 119 1 unsigned char temp; + 120 1 IIC_Start(); + 121 1 IIC_SendByte(0x90); + 122 1 IIC_WaitAck(); + 123 1 IIC_SendByte(addr); + 124 1 IIC_WaitAck(); + 125 1 IIC_Start(); + 126 1 IIC_SendByte(0x91); + 127 1 IIC_WaitAck(); + 128 1 temp = IIC_RecByte(); + 129 1 IIC_SendAck(1); + 130 1 IIC_Stop(); + 131 1 return temp; + 132 1 } + 133 + 134 void Da_Write(unsigned char dat) + 135 { + 136 1 IIC_Start(); + 137 1 IIC_SendByte(0x90); + 138 1 IIC_WaitAck(); + 139 1 IIC_SendByte(0x41); + 140 1 IIC_WaitAck(); + 141 1 IIC_SendByte(dat); + 142 1 IIC_WaitAck(); + 143 1 IIC_Stop(); + 144 1 } + 145 + 146 + 147 + 148 //дEEPROM + 149 //ڲҪдַдĵַ(Ϊ8ı)д + 150 //ֵ + 151 //ܣEERPOMijַдַضַ + 152 void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) + 153 { + 154 1 IIC_Start();//Ϳź + 155 1 IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + 156 1 IIC_WaitAck();//ȴEEPROM + 157 1 + 158 1 IIC_SendByte(addr);//дҪ洢ݵַ + 159 1 IIC_WaitAck();//ȴEEPROM + 160 1 + 161 1 while(num--) + 162 1 { + 163 2 IIC_SendByte(*EEPROM_String++);//ҪдϢд + 164 2 IIC_WaitAck();//ȴEEPROM + 165 2 IIC_Delay(200); + 166 2 } + 167 1 IIC_Stop();//ֹͣ + 168 1 } + 169 + 170 + 171 //EEPROM + 172 //ڲҪ洢ַȡĵַ(Ϊ8ı)ȡ + 173 //ֵ + 174 //ܣȡEERPOMijַеݣַС + 175 void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) + 176 { + 177 1 IIC_Start();//Ϳź + 178 1 IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + C51 COMPILER V9.59.0.0 IIC 02/03/2024 20:57:34 PAGE 4 + + 179 1 IIC_WaitAck();//ȴEEPROM + 180 1 + 181 1 IIC_SendByte(addr);//дҪȡݵַ + 182 1 IIC_WaitAck();//ȴEEPROM + 183 1 + 184 1 IIC_Start();//Ϳź + 185 1 IIC_SendByte(0xA1);//ѡEEPROMоƬȷģʽ + 186 1 IIC_WaitAck();//ȴEEPROM + 187 1 + 188 1 while(num--) + 189 1 { + 190 2 *EEPROM_String++ = IIC_RecByte();//ҪдϢд + 191 2 if(num) IIC_SendAck(0);//Ӧ + 192 2 else IIC_SendAck(1);//Ӧ + 193 2 } + 194 1 + 195 1 IIC_Stop();//ֹͣ + 196 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 385 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- 2 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/main.lst b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/main.lst new file mode 100644 index 0000000..6d55ab9 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/main.lst @@ -0,0 +1,354 @@ +C51 COMPILER V9.59.0.0 MAIN 02/03/2024 20:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 #define LIGHT_NUM 50 + 3 #define DARK_NUM 10 + 4 /* */ + 5 uchar Key_Slow_Down; // רñ + 6 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾݴ + 7 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Сݴ + 8 uchar Seg_Pos; // ɨרñ + 9 uint Seg_Slow_Down; // ܼרñ + 10 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Ledʾݴ + 11 uchar ucRtc[3] = {0x11, 0x11, 0x11}; + 12 /**/ + 13 bit Seg_show_mode; // 0 1 + 14 uchar data_show_mode; // 0ʱ 1 2¼ + 15 bit celi_show_mode; // 0ʱ 1 + 16 bit burst_mode; // 0ģʽ 1ʱģʽ + 17 uchar data_show_memory; // 0ֵ 1Сֵ 2ƽֵ + 18 /**/ + 19 uchar collection_time = 2; + 20 uchar collection_time_arr[5] = {2, 3, 5, 7, 9}; + 21 uchar collection_time_index; + 22 uchar dis_demo = 10; + 23 uint dis_value; + 24 uint dis_max; + 25 uint dis_min; + 26 uint collection_count; + 27 uchar wring_count; + 28 bit wring_flag; + 29 float dis_aver; + 30 + 31 uchar light_value, light_value_old; + 32 void init_Seg() + 33 { + 34 1 uchar i; + 35 1 for (i = 0; i < 8; i++) + 36 1 { + 37 2 Seg_Buf[i] = 10; + 38 2 Seg_Point[i] = 0; + 39 2 } + 40 1 } + 41 void hide_high_Seg(uchar start_num, uchar end_num) + 42 { + 43 1 uchar i; + 44 1 for (i = start_num; i < end_num; i++) + 45 1 { + 46 2 if (Seg_Buf[i] != 0) + 47 2 break; + 48 2 else + 49 2 Seg_Buf[i] = 10; + 50 2 } + 51 1 } + 52 /* ̴ */ + 53 void Key_Proc() + 54 { + C51 COMPILER V9.59.0.0 MAIN 02/03/2024 20:57:34 PAGE 2 + + 55 1 static uchar Key_Val, Key_Down, Key_Old, Key_Up; // רñ + 56 1 if (Key_Slow_Down) + 57 1 return; + 58 1 Key_Slow_Down = 1; // ̼ٳ + 59 1 + 60 1 Key_Val = Key_Read(); // ʵʱȡֵ + 61 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); // ׽½ + 62 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); // ׽Ͻ + 63 1 Key_Old = Key_Val; // ɨ + 64 1 if (Key_Down == 4) + 65 1 { + 66 2 Seg_show_mode ^= 1; + 67 2 celi_show_mode = data_show_mode = data_show_memory = 0; + 68 2 init_Seg(); + 69 2 } + 70 1 if (Key_Down == 5) + 71 1 { + 72 2 // + 73 2 if (Seg_show_mode) + 74 2 { + 75 3 celi_show_mode ^= 1; + 76 3 init_Seg(); + 77 3 } + 78 2 // ݽ + 79 2 else + 80 2 { + 81 3 data_show_mode = (++data_show_mode) % 3; + 82 3 init_Seg(); + 83 3 } + 84 2 } + 85 1 if (Key_Down == 8 && Seg_show_mode == 0) + 86 1 { + 87 2 if (data_show_mode == 1) + 88 2 burst_mode ^= 1; + 89 2 else if (data_show_mode == 2) + 90 2 { + 91 3 data_show_memory = (++data_show_memory) % 3; + 92 3 init_Seg(); + 93 3 } + 94 2 } + 95 1 if (Key_Down == 9 && Seg_show_mode == 1) + 96 1 { + 97 2 if (celi_show_mode) + 98 2 dis_demo = (++dis_demo > 80) ? 10 : dis_demo; + 99 2 else + 100 2 { + 101 3 collection_time_index = (++collection_time_index) % 5; + 102 3 collection_time = collection_time_arr[collection_time_index]; + 103 3 } + 104 2 } + 105 1 } + 106 + 107 /* Ϣ */ + 108 void Seg_Proc() + 109 { + 110 1 uchar temp_dis; + 111 1 if (Seg_Slow_Down) + 112 1 return; + 113 1 Seg_Slow_Down = 1; // ܼٳ + 114 1 Read_Rtc(ucRtc); + 115 1 light_value = Ad_Read(0x01); + 116 1 // ʱģʽ + C51 COMPILER V9.59.0.0 MAIN 02/03/2024 20:57:34 PAGE 3 + + 117 1 if (burst_mode) + 118 1 { + 119 2 if ((ucRtc[2] / 16 * 10 + ucRtc[2] % 16) % collection_time == 0) + 120 2 { + 121 3 dis_value = Ut_Wave_Data(); + 122 3 collection_count = (++collection_count) % 65535; + 123 3 dis_aver = (dis_aver * (collection_count - 1) + dis_value) / collection_count; + 124 3 if (dis_value > dis_demo - 5 || dis_value < dis_demo + 5) + 125 3 { + 126 4 if (++wring_count > 3) + 127 4 { + 128 5 wring_count = 4; + 129 5 } + 130 4 } + 131 3 else + 132 3 wring_count = 0; + 133 3 } + 134 2 } + 135 1 // ģʽ + 136 1 else + 137 1 { + 138 2 // -> + 139 2 if (light_value_old > LIGHT_NUM && light_value < DARK_NUM) + 140 2 { + 141 3 dis_value = Ut_Wave_Data(); + 142 3 collection_count = (++collection_count) % 65535; + 143 3 dis_aver = (dis_aver * (collection_count - 1) + dis_value) / collection_count; + 144 3 if (dis_value > dis_demo - 5 || dis_value < dis_demo + 5) + 145 3 wring_count = (++wring_count) % 4; + 146 3 else + 147 3 wring_count = 0; + 148 3 } + 149 2 } + 150 1 if (dis_max < dis_value) + 151 1 dis_max = dis_value; + 152 1 if (dis_min > dis_value || dis_min == 0) + 153 1 dis_min = dis_value; + 154 1 if (dis_value > 80) + 155 1 Da_Write(255); + 156 1 else if (dis_value < 10) + 157 1 Da_Write(51); + 158 1 else + 159 1 Da_Write(dis_value / 70.0 * 4 * 51); + 160 1 light_value_old = light_value; + 161 1 // + 162 1 if (Seg_show_mode) + 163 1 { + 164 2 Seg_Buf[0] = 18; // P + 165 2 Seg_Buf[1] = (uchar)celi_show_mode + 1; + 166 2 if (celi_show_mode) + 167 2 { + 168 3 Seg_Buf[6] = collection_time / 10 % 10; + 169 3 Seg_Buf[7] = collection_time % 10; + 170 3 } + 171 2 else + 172 2 { + 173 3 Seg_Buf[6] = dis_demo / 10 % 10; + 174 3 Seg_Buf[7] = dis_demo % 10; + 175 3 } + 176 2 } + 177 1 // ݽ + 178 1 else + C51 COMPILER V9.59.0.0 MAIN 02/03/2024 20:57:34 PAGE 4 + + 179 1 { + 180 2 switch (data_show_mode) + 181 2 { + 182 3 case 0: + 183 3 /* ʱʾ */ + 184 3 Seg_Buf[0] = ucRtc[0] / 16; + 185 3 Seg_Buf[1] = ucRtc[0] % 16; + 186 3 Seg_Buf[2] = 16; + 187 3 Seg_Buf[3] = ucRtc[1] / 16; + 188 3 Seg_Buf[4] = ucRtc[1] % 16; + 189 3 Seg_Buf[5] = 16; + 190 3 Seg_Buf[6] = ucRtc[2] / 16; + 191 3 Seg_Buf[7] = ucRtc[2] % 16; + 192 3 break; + 193 3 case 1: + 194 3 /*ʾ*/ + 195 3 Seg_Buf[0] = 11; // L + 196 3 Seg_Buf[1] = (burst_mode) ? 12 : 13; + 197 3 Seg_Buf[5] = dis_value / 100 % 10; + 198 3 Seg_Buf[6] = dis_value / 10 % 10; + 199 3 Seg_Buf[7] = dis_value % 10; + 200 3 hide_high_Seg(5, 7); + 201 3 break; + 202 3 case 2: + 203 3 /*ݼ¼*/ + 204 3 Seg_Buf[0] = 14; // H + 205 3 Seg_Buf[1] = data_show_memory + 15; + 206 3 switch (data_show_memory) + 207 3 { + 208 4 case 0: + 209 4 /* ֵ */ + 210 4 Seg_Buf[4] = dis_max / 1000 % 10; + 211 4 Seg_Buf[5] = dis_max / 100 % 10; + 212 4 Seg_Buf[6] = dis_max / 10 % 10; + 213 4 Seg_Buf[7] = dis_max % 10; + 214 4 hide_high_Seg(4, 7); + 215 4 break; + 216 4 case 1: + 217 4 /*ƽֵ*/ + 218 4 temp_dis = dis_aver * 10; + 219 4 Seg_Buf[4] = temp_dis / 1000 % 10; + 220 4 Seg_Buf[5] = temp_dis / 100 % 10; + 221 4 Seg_Buf[6] = temp_dis / 10 % 10; + 222 4 Seg_Buf[7] = temp_dis % 10; + 223 4 hide_high_Seg(4, 6); + 224 4 Seg_Point[6] = 1; + 225 4 break; + 226 4 case 2: + 227 4 /*Сֵ*/ + 228 4 Seg_Buf[4] = dis_min / 1000 % 10; + 229 4 Seg_Buf[5] = dis_min / 100 % 10; + 230 4 Seg_Buf[6] = dis_min / 10 % 10; + 231 4 Seg_Buf[7] = dis_min % 10; + 232 4 hide_high_Seg(4, 7); + 233 4 break; + 234 4 } + 235 3 break; + 236 3 } + 237 2 } + 238 1 } + 239 + 240 /* ʾ */ + C51 COMPILER V9.59.0.0 MAIN 02/03/2024 20:57:34 PAGE 5 + + 241 void Led_Proc() + 242 { + 243 1 ucLed[0] = (Seg_show_mode == 0 && data_show_mode == 0); + 244 1 ucLed[1] = (Seg_show_mode == 0 && data_show_mode == 1); + 245 1 ucLed[2] = (Seg_show_mode == 0 && data_show_mode == 2); + 246 1 ucLed[3] = !burst_mode; + 247 1 if (burst_mode) + 248 1 { + 249 2 Beep(wring_count >= 3); + 250 2 ucLed[4] = (wring_count >= 3); + 251 2 } + 252 1 else + 253 1 { + 254 2 Beep(0); + 255 2 ucLed[4] = 0; + 256 2 } + 257 1 ucLed[5] = (light_value > LIGHT_NUM); + 258 1 } + 259 + 260 /* ʱ0жϳʼ */ + 261 void Timer0Init(void) // 1@12.000MHz + 262 { + 263 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 264 1 TMOD &= 0xF0; // öʱģʽ + 265 1 TL0 = 0x18; // öʱʼֵ + 266 1 TH0 = 0xFC; // öʱʼֵ + 267 1 TF0 = 0; // TF0־ + 268 1 TR0 = 1; // ʱ0ʼʱ + 269 1 ET0 = 1; // ʱж0 + 270 1 EA = 1; // жϴ + 271 1 } + 272 + 273 /* ʱ0жϷ */ + 274 void Timer0Server() interrupt 1 + 275 { + 276 1 if (++Key_Slow_Down == 10) + 277 1 Key_Slow_Down = 0; // ̼ר + 278 1 if (++Seg_Slow_Down == 500) + 279 1 Seg_Slow_Down = 0; // ܼר + 280 1 if (++Seg_Pos == 8) + 281 1 Seg_Pos = 0; // ʾר + 282 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 283 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 284 1 } + 285 + 286 void Delay750ms() //@12MHz + 287 { + 288 1 unsigned char i, j, k; + 289 1 + 290 1 _nop_(); + 291 1 _nop_(); + 292 1 i = 35; + 293 1 j = 51; + 294 1 k = 182; + 295 1 do + 296 1 { + 297 2 do + 298 2 { + 299 3 while (--k) + 300 3 ; + 301 3 } while (--j); + 302 2 } while (--i); + C51 COMPILER V9.59.0.0 MAIN 02/03/2024 20:57:34 PAGE 6 + + 303 1 } + 304 + 305 /* Main */ + 306 void main() + 307 { + 308 1 // ¶ȶȡĻ + 309 1 rd_temperature(); + 310 1 Delay750ms(); + 311 1 System_Init(); + 312 1 Timer0Init(); + 313 1 Set_Rtc(ucRtc); + 314 1 while (1) + 315 1 { + 316 2 Key_Proc(); + 317 2 Seg_Proc(); + 318 2 Led_Proc(); + 319 2 } + 320 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 1616 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 60 ---- + IDATA SIZE = ---- ---- + BIT SIZE = 4 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/onewire.lst b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/onewire.lst new file mode 100644 index 0000000..420e834 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/onewire.lst @@ -0,0 +1,103 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/03/2024 20:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 #include "onewire.h" + 2 #include "reg52.h" + 3 + 4 sbit DQ = P1 ^ 4; + 5 + 6 // ڲʱ + 7 void Delay_OneWire(unsigned int t) + 8 { + 9 1 t *= 12; + 10 1 while (t--) + 11 1 ; + 12 1 } + 13 + 14 // д + 15 void Write_DS18B20(unsigned char dat) + 16 { + 17 1 unsigned char i; + 18 1 for (i = 0; i < 8; i++) + 19 1 { + 20 2 DQ = 0; + 21 2 DQ = dat & 0x01; + 22 2 Delay_OneWire(5); + 23 2 DQ = 1; + 24 2 dat >>= 1; // һһд + 25 2 } + 26 1 Delay_OneWire(5); + 27 1 } + 28 + 29 // ߶ + 30 unsigned char Read_DS18B20(void) + 31 { + 32 1 unsigned char i; + 33 1 unsigned char dat; + 34 1 + 35 1 for (i = 0; i < 8; i++) + 36 1 { + 37 2 DQ = 0; + 38 2 dat >>= 1; + 39 2 DQ = 1; + 40 2 if (DQ) + 41 2 { + 42 3 dat |= 0x80; // һһȡ + 43 3 } + 44 2 Delay_OneWire(5); + 45 2 } + 46 1 return dat; + 47 1 } + 48 + 49 // DS18B20ʼ + 50 bit init_ds18b20(void) + 51 { + 52 1 bit initflag = 0; + 53 1 + 54 1 DQ = 1; + C51 COMPILER V9.59.0.0 ONEWIRE 02/03/2024 20:57:34 PAGE 2 + + 55 1 Delay_OneWire(12); + 56 1 DQ = 0; + 57 1 Delay_OneWire(80); + 58 1 DQ = 1; + 59 1 Delay_OneWire(10); + 60 1 initflag = DQ; + 61 1 Delay_OneWire(5); + 62 1 + 63 1 return initflag; + 64 1 } + 65 float rd_temperature() + 66 { + 67 1 unsigned char low, high; + 68 1 init_ds18b20(); // ʼ + 69 1 Write_DS18B20(0xcc); // ROM + 70 1 Write_DS18B20(0x44); // ¶ת + 71 1 init_ds18b20(); // ʼ + 72 1 Write_DS18B20(0xcc); // ROM + 73 1 Write_DS18B20(0xbe); // ȡ¶ + 74 1 low = Read_DS18B20(); // λ + 75 1 high = Read_DS18B20(); // λ + 76 1 return ((high << 8) | low) / 16.0; + 77 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 187 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/ultrasound.lst b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/ultrasound.lst new file mode 100644 index 0000000..6e2f1e6 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/ultrasound.lst @@ -0,0 +1,75 @@ +C51 COMPILER V9.59.0.0 ULTRASOUND 02/03/2024 20:57:34 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASOUND +OBJECT MODULE PLACED IN .\Objects\ultrasound.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ultrasound.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\ultrasound.lst) TABS(2) OBJECT(.\Objects\ultrasound.obj) + +line level source + + 1 #include + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1^0; + 5 sbit Rx = P1^1; + 6 + 7 void Delay12us() //@12.000MHz + 8 { + 9 1 unsigned char i; + 10 1 + 11 1 _nop_(); + 12 1 _nop_(); + 13 1 i = 38; + 14 1 while (--i); + 15 1 } + 16 + 17 void Ut_Wave_Init() //��������ʼ������ ����8��40Mhz�ķ��� + -ź� + 18 { + 19 1 unsigned char i; + 20 1 for(i=0; i<8; i++) + 21 1 { + 22 2 Tx = 1; + 23 2 Delay12us(); + 24 2 Tx = 0; + 25 2 Delay12us(); + 26 2 } + 27 1 } + 28 + 29 unsigned char Ut_Wave_Data() //超声波距离读取函数 + 30 { + 31 1 unsigned int time;//时间储存变量 + 32 1 CMOD = 0x00;//配置PCA工作模式 + 33 1 CH = CL = 0;//复位计数值 等待超声波信号发出 + 34 1 Ut_Wave_Init();//发送超声波信号 + 35 1 CR = 1;//开始计时 + 36 1 while((Rx == 1) && (CF == 0));//等待接受返回信号或者定时器溢出 + 37 1 CR = 0;//停止计时 + 38 1 if(CF == 0) //定时器没有溢出 + 39 1 { + 40 2 time = CH << 8 | CL;//读取当前时间 + 41 2 return (time * 0.017);//返回距离值 + 42 2 } + 43 1 else + 44 1 { + 45 2 CF = 0;//清除溢出标志位 + 46 2 return 0; + 47 2 } + 48 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 89 ---- + CONSTANT SIZE = ---- ---- + C51 COMPILER V9.59.0.0 ULTRASOUND 02/03/2024 20:57:34 PAGE 2 + + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/zuolan.m51 b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/zuolan.m51 new file mode 100644 index 0000000..9c6e509 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Listings/zuolan.m51 @@ -0,0 +1,1436 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\ds1302.obj, .\Objects\iic.obj, .\Objects\onewire.obj, .\Objects\ultrasound.obj TO .\Objects\zuolan PRI +>> NT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\ds1302.obj (DS1302) + .\Objects\iic.obj (IIC) + .\Objects\onewire.obj (ONEWIRE) + .\Objects\ultrasound.obj (ULTRASOUND) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?IMUL) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?SIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?SLDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?ULDIV) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0006H UNIT ?DT?LED + DATA 000EH 0005H UNIT ?DT?_EEPROM_WRITE?IIC + DATA 0013H 0005H UNIT ?DT?_EEPROM_READ?IIC + DATA 0018H 0003H UNIT _DATA_GROUP_ + 001BH 0005H *** GAP *** + BIT 0020H.0 0000H.4 UNIT ?BI?MAIN + BIT 0020H.4 0000H.1 UNIT _BIT_GROUP_ + 0020H.5 0000H.3 *** GAP *** + DATA 0021H 003CH UNIT ?DT?MAIN + DATA 005DH 001BH UNIT ?DT?SEG + IDATA 0078H 0001H UNIT ?STACK + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 2 + + + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0007H UNIT ?PR?DELAY12US?ULTRASOUND + 000AH 0001H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0550H UNIT ?C?LIB_CODE + CODE 055EH 0419H UNIT ?PR?SEG_PROC?MAIN + CODE 0977H 00B5H UNIT ?PR?KEY_PROC?MAIN + CODE 0A2CH 008CH UNIT ?C_C51STARTUP + CODE 0AB8H 0088H UNIT ?PR?TIMER0SERVER?MAIN + CODE 0B40H 0084H UNIT ?PR?LED_PROC?MAIN + CODE 0BC4H 0073H UNIT ?PR?KEY_READ?KEY + CODE 0C37H 0062H UNIT ?C_INITSEG + CODE 0C99H 004DH UNIT ?PR?_EEPROM_READ?IIC + CODE 0CE6H 0044H UNIT ?C?LDIV + CODE 0D2AH 003EH UNIT ?PR?_SET_RTC?DS1302 + CODE 0D68H 003DH UNIT ?PR?_READ_DS1302_BYTE?DS1302 + CODE 0DA5H 003DH UNIT ?PR?_EEPROM_WRITE?IIC + CODE 0DE2H 003CH UNIT ?PR?_IIC_SENDBYTE?IIC + CODE 0E1EH 003BH UNIT ?PR?_LED_DISP?LED + CODE 0E59H 0038H UNIT ?PR?UT_WAVE_DATA?ULTRASOUND + CODE 0E91H 0037H UNIT ?PR?_SEG_DISP?SEG + CODE 0EC8H 0034H UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 0EFCH 0031H UNIT ?PR?_READ_RTC?DS1302 + CODE 0F2DH 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 0F54H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 0F7BH 0026H UNIT ?PR?IIC_RECBYTE?IIC + CODE 0FA1H 0026H UNIT ?PR?_AD_READ?IIC + CODE 0FC7H 0023H UNIT ?PR?_BEEP?LED + CODE 0FEAH 0023H UNIT ?PR?_RELAY?LED + CODE 100DH 0023H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 1030H 0020H UNIT ?PR?MAIN?MAIN + CODE 1050H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 106DH 001CH UNIT ?PR?INIT_SEG?MAIN + CODE 1089H 001CH UNIT ?PR?_WRITE_DS1302?DS1302 + CODE 10A5H 001BH UNIT ?PR?IIC_WAITACK?IIC + CODE 10C0H 001AH UNIT ?PR?UT_WAVE_INIT?ULTRASOUND + CODE 10DAH 0017H UNIT ?PR?IIC_SENDACK?IIC + CODE 10F1H 0016H UNIT ?PR?_HIDE_HIGH_SEG?MAIN + CODE 1107H 0016H UNIT ?PR?_DA_WRITE?IIC + CODE 111DH 0016H UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 1133H 0015H UNIT ?PR?TIMER0INIT?MAIN + CODE 1148H 0014H UNIT ?PR?_WRITE_DS1302_BYTE?DS1302 + CODE 115CH 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 116BH 000FH UNIT ?PR?IIC_START?IIC + CODE 117AH 000CH UNIT ?PR?_IIC_DELAY?IIC + CODE 1186H 000CH UNIT ?PR?IIC_STOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------------- + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 3 + + +?PR?TIMER0SERVER?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0INIT?MAIN + +--> ?PR?_SET_RTC?DS1302 + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.4 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_SET_RTC?DS1302 ----- ----- 0018H 0003H + +--> ?PR?_WRITE_DS1302_BYTE?DS1302 + +?PR?_WRITE_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +--> ?PR?INIT_SEG?MAIN + +?PR?SEG_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_READ_RTC?DS1302 + +--> ?PR?_AD_READ?IIC + +--> ?PR?UT_WAVE_DATA?ULTRASOUND + +--> ?PR?_DA_WRITE?IIC + +--> ?PR?_HIDE_HIGH_SEG?MAIN + +?PR?_READ_RTC?DS1302 ----- ----- 0018H 0003H + +--> ?PR?_READ_DS1302_BYTE?DS1302 + +?PR?_READ_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 4 + + +?PR?_AD_READ?IIC ----- ----- ----- ----- + +--> ?PR?IIC_WAITACK?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?IIC_START?IIC + +--> ?PR?IIC_RECBYTE?IIC + +--> ?PR?IIC_SENDACK?IIC + +--> ?PR?IIC_STOP?IIC + +?PR?IIC_WAITACK?IIC 0020H.4 0000H.1 ----- ----- + +--> ?PR?IIC_START?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_START?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?_IIC_SENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?IIC_START?IIC + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_RECBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_SENDACK?IIC 0020H.4 0000H.1 ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_STOP?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?UT_WAVE_DATA?ULTRASOUND ----- ----- ----- ----- + +--> ?PR?UT_WAVE_INIT?ULTRASOUND + +?PR?UT_WAVE_INIT?ULTRASOUND ----- ----- ----- ----- + +--> ?PR?DELAY12US?ULTRASOUND + +?PR?_DA_WRITE?IIC ----- ----- ----- ----- + +--> ?PR?IIC_WAITACK?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?IIC_STOP?IIC + +?PR?LED_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_BEEP?LED + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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:0025H PUBLIC ucRtc + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 5 + + + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0B40H PUBLIC Led_Proc + D:0028H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:055EH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:0030H PUBLIC light_value + D:0031H PUBLIC Seg_Buf + C:10F1H PUBLIC _hide_high_Seg + C:0977H PUBLIC Key_Proc + D:0039H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:1030H PUBLIC main + B:0020H.0 PUBLIC wring_flag + D:003BH PUBLIC Key_Slow_Down + C:0AB8H PUBLIC Timer0Server + D:003CH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + C:106DH PUBLIC init_Seg + D:003DH PUBLIC wring_count + B:0020H.1 PUBLIC burst_mode + D:003EH PUBLIC light_value_old + D:003FH PUBLIC data_show_memory + D:0040H PUBLIC collection_count + D:0042H PUBLIC collection_time_index + D:008EH PUBLIC AUXR + D:0043H PUBLIC dis_value + D:0045H PUBLIC collection_time + D:0046H PUBLIC data_show_mode + D:0047H PUBLIC dis_demo + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + C:1133H PUBLIC Timer0Init + B:0020H.2 PUBLIC celi_show_mode + B:0020H.3 PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + D:0048H PUBLIC dis_aver + B:0088H.4 PUBLIC TR0 + D:004CH PUBLIC dis_min + D:004EH PUBLIC dis_max + D:0050H PUBLIC collection_time_arr + D:0055H PUBLIC ucLed + C:115CH PUBLIC Delay750ms + D:00D0H PUBLIC PSW + ------- PROC INIT_SEG + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:106DH LINE# 32 + C:106DH LINE# 33 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 6 + + + C:106DH LINE# 35 + C:1079H LINE# 36 + C:1079H LINE# 37 + C:107FH LINE# 38 + C:1085H LINE# 39 + C:1088H LINE# 40 + ------- ENDPROC INIT_SEG + ------- PROC _HIDE_HIGH_SEG + D:0007H SYMBOL start_num + D:0005H SYMBOL end_num + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:10F1H LINE# 41 + C:10F1H LINE# 42 + C:10F1H LINE# 44 + C:10F6H LINE# 45 + C:10F6H LINE# 46 + C:10FDH LINE# 47 + C:10FDH LINE# 49 + C:1103H LINE# 50 + C:1106H LINE# 51 + ------- ENDPROC _HIDE_HIGH_SEG + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Old + D:0024H SYMBOL Key_Up + ------- ENDDO + C:0977H LINE# 53 + C:0977H LINE# 54 + C:0977H LINE# 56 + C:097EH LINE# 58 + C:0981H LINE# 60 + C:0986H LINE# 61 + C:098FH LINE# 62 + C:0995H LINE# 63 + C:0998H LINE# 64 + C:099EH LINE# 65 + C:099EH LINE# 66 + C:09A3H LINE# 67 + C:09A9H LINE# 68 + C:09ACH LINE# 69 + C:09ACH LINE# 70 + C:09B2H LINE# 71 + C:09B2H LINE# 73 + C:09B5H LINE# 74 + C:09B5H LINE# 75 + C:09BAH LINE# 76 + C:09BAH LINE# 77 + C:09BCH LINE# 80 + C:09BCH LINE# 81 + C:09C7H LINE# 82 + C:09CAH LINE# 83 + C:09CAH LINE# 84 + C:09CAH LINE# 85 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 7 + + + C:09D3H LINE# 86 + C:09D3H LINE# 87 + C:09DBH LINE# 88 + C:09E2H LINE# 89 + C:09E8H LINE# 90 + C:09E8H LINE# 91 + C:09F3H LINE# 92 + C:09F6H LINE# 93 + C:09F6H LINE# 94 + C:09F6H LINE# 95 + C:09FFH LINE# 96 + C:09FFH LINE# 97 + C:0A02H LINE# 98 + C:0A18H LINE# 100 + C:0A18H LINE# 101 + C:0A23H LINE# 102 + C:0A2BH LINE# 103 + C:0A2BH LINE# 104 + C:0A2BH LINE# 105 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:0003H SYMBOL temp_dis + ------- ENDDO + C:055EH LINE# 108 + C:055EH LINE# 109 + C:055EH LINE# 111 + C:0567H LINE# 113 + C:056CH LINE# 114 + C:0574H LINE# 115 + C:057BH LINE# 117 + C:0581H LINE# 118 + C:0581H LINE# 119 + C:05A3H LINE# 120 + C:05A3H LINE# 121 + C:05ABH LINE# 122 + C:05CAH LINE# 123 + C:0629H LINE# 124 + C:064EH LINE# 125 + C:064EH LINE# 126 + C:065EH LINE# 127 + C:065EH LINE# 128 + C:0661H LINE# 129 + C:0661H LINE# 130 + C:0664H LINE# 132 + C:0664H LINE# 133 + C:0664H LINE# 134 + C:0667H LINE# 137 + C:0667H LINE# 139 + C:0682H LINE# 140 + C:0682H LINE# 141 + C:068AH LINE# 142 + C:06A9H LINE# 143 + C:0708H LINE# 144 + C:072DH LINE# 145 + C:0737H LINE# 147 + C:073AH LINE# 148 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 8 + + + C:073AH LINE# 149 + C:073AH LINE# 150 + C:0745H LINE# 151 + C:074BH LINE# 152 + C:075CH LINE# 153 + C:0762H LINE# 154 + C:076DH LINE# 155 + C:0771H LINE# 156 + C:077CH LINE# 157 + C:0780H LINE# 159 + C:07A2H LINE# 160 + C:07A5H LINE# 162 + C:07A8H LINE# 163 + C:07A8H LINE# 164 + C:07ABH LINE# 165 + C:07B2H LINE# 166 + C:07B5H LINE# 167 + C:07B5H LINE# 168 + C:07C2H LINE# 169 + C:07C4H LINE# 170 + C:07C6H LINE# 172 + C:07C6H LINE# 173 + C:07D3H LINE# 174 + C:07DCH LINE# 175 + C:07DCH LINE# 176 + C:07DDH LINE# 179 + C:07DDH LINE# 180 + C:07EFH LINE# 181 + C:07EFH LINE# 182 + C:07EFH LINE# 184 + C:07F6H LINE# 185 + C:07FCH LINE# 186 + C:07FFH LINE# 187 + C:0806H LINE# 188 + C:080CH LINE# 189 + C:080FH LINE# 190 + C:0816H LINE# 191 + C:081CH LINE# 192 + C:081DH LINE# 193 + C:081DH LINE# 195 + C:0820H LINE# 196 + C:082BH LINE# 197 + C:083FH LINE# 198 + C:0853H LINE# 199 + C:0860H LINE# 200 + C:0864H LINE# 201 + C:0867H LINE# 202 + C:0867H LINE# 204 + C:086AH LINE# 205 + C:0870H LINE# 206 + C:0882H LINE# 207 + C:0882H LINE# 208 + C:0882H LINE# 210 + C:0896H LINE# 211 + C:08AAH LINE# 212 + C:08BEH LINE# 213 + C:08CBH LINE# 214 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 9 + + + C:08CFH LINE# 215 + C:08D2H LINE# 216 + C:08D2H LINE# 218 + C:08E9H LINE# 219 + C:08FBH LINE# 220 + C:0907H LINE# 221 + C:0913H LINE# 222 + C:091BH LINE# 223 + C:0922H LINE# 224 + C:0925H LINE# 225 + C:0926H LINE# 226 + C:0926H LINE# 228 + C:093AH LINE# 229 + C:094EH LINE# 230 + C:0962H LINE# 231 + C:096FH LINE# 232 + C:0976H LINE# 233 + C:0976H LINE# 234 + C:0976H LINE# 235 + C:0976H LINE# 236 + C:0976H LINE# 237 + C:0976H LINE# 238 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0B40H LINE# 241 + C:0B40H LINE# 242 + C:0B40H LINE# 243 + C:0B4FH LINE# 244 + C:0B60H LINE# 245 + C:0B71H LINE# 246 + C:0B7CH LINE# 247 + C:0B7FH LINE# 248 + C:0B7FH LINE# 249 + C:0B93H LINE# 250 + C:0BA6H LINE# 251 + C:0BA8H LINE# 253 + C:0BA8H LINE# 254 + C:0BADH LINE# 255 + C:0BB0H LINE# 256 + C:0BB0H LINE# 257 + C:0BC3H LINE# 258 + ------- ENDPROC LED_PROC + ------- PROC TIMER0INIT + C:1133H LINE# 261 + C:1133H LINE# 262 + C:1133H LINE# 263 + C:1136H LINE# 264 + C:1139H LINE# 265 + C:113CH LINE# 266 + C:113FH LINE# 267 + C:1141H LINE# 268 + C:1143H LINE# 269 + C:1145H LINE# 270 + C:1147H LINE# 271 + ------- ENDPROC TIMER0INIT + ------- PROC TIMER0SERVER + C:0AB8H LINE# 274 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 10 + + + C:0AD5H LINE# 276 + C:0ADDH LINE# 277 + C:0ADFH LINE# 278 + C:0AF0H LINE# 279 + C:0AF6H LINE# 280 + C:0AFEH LINE# 281 + C:0B00H LINE# 282 + C:0B17H LINE# 283 + C:0B25H LINE# 284 + ------- ENDPROC TIMER0SERVER + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:115CH LINE# 286 + C:115CH LINE# 287 + C:115CH LINE# 290 + C:115DH LINE# 291 + C:115EH LINE# 292 + C:1160H LINE# 293 + C:1162H LINE# 294 + C:1164H LINE# 296 + C:1164H LINE# 298 + C:1164H LINE# 299 + C:1166H LINE# 301 + C:1168H LINE# 302 + C:116AH LINE# 303 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:1030H LINE# 306 + C:1030H LINE# 307 + C:1030H LINE# 309 + C:1033H LINE# 310 + C:1036H LINE# 311 + C:1039H LINE# 312 + C:103CH LINE# 313 + C:1045H LINE# 314 + C:1045H LINE# 315 + C:1045H LINE# 316 + C:1048H LINE# 317 + C:104BH LINE# 318 + C:104EH LINE# 319 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:0FEAH PUBLIC _Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 11 + + + D:00F8H PUBLIC P7 + C:0E1EH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:0FC7H PUBLIC _Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0004H SYMBOL enable + ------- DO + D:0008H SYMBOL temp + D:0009H SYMBOL temp_old + ------- ENDDO + C:0E1EH LINE# 3 + C:0E1EH LINE# 4 + C:0E1EH LINE# 9 + C:0E22H LINE# 10 + C:0E31H LINE# 12 + C:0E3FH LINE# 14 + C:0E45H LINE# 15 + C:0E45H LINE# 16 + C:0E4AH LINE# 17 + C:0E52H LINE# 18 + C:0E55H LINE# 19 + C:0E58H LINE# 20 + C:0E58H LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC _BEEP + D:0007H SYMBOL flag + ------- DO + D:000AH SYMBOL temp + D:000BH SYMBOL temp_old + ------- ENDDO + C:0FC7H LINE# 24 + C:0FC7H LINE# 25 + C:0FC7H LINE# 28 + C:0FCAH LINE# 29 + C:0FCFH LINE# 31 + C:0FD2H LINE# 32 + C:0FD8H LINE# 33 + C:0FD8H LINE# 34 + C:0FDBH LINE# 35 + C:0FE3H LINE# 36 + C:0FE6H LINE# 37 + C:0FE9H LINE# 38 + C:0FE9H LINE# 39 + ------- ENDPROC _BEEP + ------- PROC _RELAY + D:0007H SYMBOL flag + ------- DO + D:000CH SYMBOL temp + D:000DH SYMBOL temp_old + ------- ENDDO + C:0FEAH LINE# 41 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 12 + + + C:0FEAH LINE# 42 + C:0FEAH LINE# 45 + C:0FEDH LINE# 46 + C:0FF2H LINE# 48 + C:0FF5H LINE# 49 + C:0FFBH LINE# 50 + C:0FFBH LINE# 51 + C:0FFEH LINE# 52 + C:1006H LINE# 53 + C:1009H LINE# 54 + C:100CH LINE# 55 + C:100CH LINE# 56 + ------- ENDPROC _RELAY + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0E91H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:005DH PUBLIC seg_dula + D:0070H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0004H SYMBOL dula + D:0002H SYMBOL point + C:0E91H LINE# 8 + C:0E91H LINE# 9 + C:0E91H LINE# 11 + C:0E94H LINE# 12 + C:0E9CH LINE# 13 + C:0EA3H LINE# 14 + C:0EABH LINE# 15 + C:0EAEH LINE# 17 + C:0EB5H LINE# 18 + C:0EB9H LINE# 19 + C:0EBCH LINE# 20 + C:0EC4H LINE# 21 + C:0EC7H LINE# 22 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 13 + + + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0BC4H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0BC4H LINE# 3 + C:0BC4H LINE# 4 + C:0BC4H LINE# 5 + C:0BC6H LINE# 7 + C:0BC8H LINE# 8 + C:0BCAH LINE# 9 + C:0BCCH LINE# 10 + C:0BCEH LINE# 11 + C:0BD3H LINE# 12 + C:0BD8H LINE# 13 + C:0BDDH LINE# 14 + C:0BE2H LINE# 16 + C:0BE4H LINE# 17 + C:0BE6H LINE# 18 + C:0BE8H LINE# 19 + C:0BEAH LINE# 20 + C:0BEFH LINE# 21 + C:0BF4H LINE# 22 + C:0BF9H LINE# 23 + C:0BFEH LINE# 25 + C:0C00H LINE# 26 + C:0C02H LINE# 27 + C:0C04H LINE# 28 + C:0C06H LINE# 29 + C:0C0BH LINE# 30 + C:0C10H LINE# 31 + C:0C15H LINE# 32 + C:0C1AH LINE# 34 + C:0C1CH LINE# 35 + C:0C1EH LINE# 36 + C:0C20H LINE# 37 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 14 + + + C:0C22H LINE# 38 + C:0C27H LINE# 39 + C:0C2CH LINE# 40 + C:0C31H LINE# 41 + C:0C36H LINE# 42 + C:0C36H LINE# 43 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:1050H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:1050H LINE# 3 + C:1050H LINE# 4 + C:1050H LINE# 5 + C:1053H LINE# 6 + C:105BH LINE# 7 + C:105EH LINE# 9 + C:1061H LINE# 10 + C:1069H LINE# 11 + C:106CH LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE DS1302 + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0EFCH PUBLIC _Read_Rtc + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0D2AH PUBLIC _Set_Rtc + C:0D68H PUBLIC _Read_Ds1302_Byte + B:00A0H.3 PUBLIC SDA + B:0090H.7 PUBLIC SCK + C:1148H PUBLIC _Write_Ds1302_Byte + D:00C8H PUBLIC T2CON + C:1089H PUBLIC _Write_Ds1302 + B:0090H.3 PUBLIC RST + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 15 + + + D:00D0H PUBLIC PSW + ------- PROC _WRITE_DS1302 + D:0007H SYMBOL temp + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:1089H LINE# 10 + C:1089H LINE# 11 + C:1089H LINE# 13 + C:1095H LINE# 14 + C:1095H LINE# 15 + C:1097H LINE# 16 + C:109BH LINE# 17 + C:109FH LINE# 18 + C:10A1H LINE# 19 + C:10A4H LINE# 20 + ------- ENDPROC _WRITE_DS1302 + ------- PROC _WRITE_DS1302_BYTE + D:0007H SYMBOL address + D:0005H SYMBOL dat + C:1148H LINE# 23 + C:1148H LINE# 24 + C:1148H LINE# 25 + C:114AH LINE# 26 + C:114BH LINE# 27 + C:114DH LINE# 28 + C:114EH LINE# 29 + C:1150H LINE# 30 + C:1151H LINE# 31 + C:1154H LINE# 32 + C:1159H LINE# 33 + C:115BH LINE# 34 + ------- ENDPROC _WRITE_DS1302_BYTE + ------- PROC _READ_DS1302_BYTE + D:0007H SYMBOL address + ------- DO + D:0007H SYMBOL i + D:0005H SYMBOL temp + ------- ENDDO + C:0D68H LINE# 37 + C:0D68H LINE# 38 + C:0D68H LINE# 39 + C:0D6AH LINE# 40 + C:0D6CH LINE# 41 + C:0D6DH LINE# 42 + C:0D6FH LINE# 43 + C:0D70H LINE# 44 + C:0D72H LINE# 45 + C:0D73H LINE# 46 + C:0D76H LINE# 47 + C:0D82H LINE# 48 + C:0D82H LINE# 49 + C:0D84H LINE# 50 + C:0D88H LINE# 51 + C:0D8BH LINE# 52 + C:0D8EH LINE# 53 + C:0D90H LINE# 54 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 16 + + + C:0D93H LINE# 55 + C:0D95H LINE# 56 + C:0D96H LINE# 57 + C:0D98H LINE# 58 + C:0D99H LINE# 59 + C:0D9BH LINE# 60 + C:0D9CH LINE# 61 + C:0D9EH LINE# 62 + C:0D9FH LINE# 63 + C:0DA1H LINE# 64 + C:0DA2H LINE# 65 + C:0DA4H LINE# 66 + ------- ENDPROC _READ_DS1302_BYTE + ------- PROC _SET_RTC + D:0018H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0D2AH LINE# 68 + C:0D30H LINE# 69 + C:0D30H LINE# 71 + C:0D37H LINE# 72 + C:0D43H LINE# 73 + C:0D43H LINE# 74 + C:0D5EH LINE# 75 + C:0D61H LINE# 76 + ------- ENDPROC _SET_RTC + ------- PROC _READ_RTC + D:0018H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0EFCH LINE# 79 + C:0F02H LINE# 80 + C:0F02H LINE# 82 + C:0F0EH LINE# 83 + C:0F0EH LINE# 84 + C:0F29H LINE# 85 + C:0F2CH LINE# 86 + ------- ENDPROC _READ_RTC + ------- ENDMOD DS1302 + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0FA1H PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:1107H PUBLIC _Da_Write + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 17 + + + C:117EH PUBLIC _IIC_Delay + C:0C99H PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0DA5H PUBLIC _EEPROM_Write + C:116BH PUBLIC IIC_Start + C:10DAH PUBLIC IIC_SendAck + B:00A0H.1 PUBLIC SDA + C:0DE9H PUBLIC _IIC_SendByte + C:10AFH PUBLIC IIC_WaitAck + C:1186H PUBLIC IIC_Stop + B:00A0H.0 PUBLIC SCL + C:0F7BH PUBLIC IIC_RecByte + D:00D0H PUBLIC PSW + C:117AH SYMBOL L?0035 + ------- PROC L?0034 + ------- ENDPROC L?0034 + C:117AH SYMBOL L?0035 + ------- PROC _IIC_DELAY + D:0007H SYMBOL i + C:117EH LINE# 23 + C:117EH LINE# 24 + C:117EH LINE# 25 + C:117EH LINE# 26 + C:117FH LINE# 27 + C:117FH LINE# 28 + C:1185H LINE# 29 + ------- ENDPROC _IIC_DELAY + ------- PROC IIC_START + C:116BH LINE# 32 + C:116BH LINE# 33 + C:116BH LINE# 34 + C:116DH LINE# 35 + C:116DH LINE# 36 + C:1170H LINE# 37 + C:1172H LINE# 38 + C:1177H LINE# 39 + C:1179H LINE# 40 + ------- ENDPROC IIC_START + ------- PROC IIC_STOP + C:1186H LINE# 43 + C:1186H LINE# 44 + C:1186H LINE# 45 + C:1188H LINE# 46 + C:1188H LINE# 47 + C:118BH LINE# 48 + C:118DH LINE# 49 + ------- ENDPROC IIC_STOP + ------- PROC IIC_SENDACK + B:0020H.4 SYMBOL ackbit + C:10DAH LINE# 53 + C:10DAH LINE# 54 + C:10DAH LINE# 55 + C:10DCH LINE# 56 + C:10E0H LINE# 57 + C:10E5H LINE# 58 + C:10E5H LINE# 59 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 18 + + + C:10E8H LINE# 60 + C:10EAH LINE# 61 + C:10ECH LINE# 62 + ------- ENDPROC IIC_SENDACK + ------- PROC L?0033 + ------- ENDPROC L?0033 + ------- PROC IIC_WAITACK + ------- DO + B:0020H.4 SYMBOL ackbit + ------- ENDDO + C:10AFH LINE# 66 + C:10AFH LINE# 67 + C:10AFH LINE# 70 + C:10AFH LINE# 71 + C:10B2H LINE# 72 + C:10B6H LINE# 73 + C:10B8H LINE# 74 + C:10BDH LINE# 75 + C:10BFH LINE# 76 + ------- ENDPROC IIC_WAITACK + ------- PROC L?0036 + ------- ENDPROC L?0036 + ------- PROC _IIC_SENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0DE9H LINE# 79 + C:0DEBH LINE# 80 + C:0DEBH LINE# 83 + C:0DF7H LINE# 84 + C:0DF7H LINE# 85 + C:0DF9H LINE# 86 + C:0DFEH LINE# 87 + C:0E06H LINE# 88 + C:0E08H LINE# 89 + C:0E0DH LINE# 90 + C:0E0FH LINE# 91 + C:0E13H LINE# 92 + C:0E18H LINE# 93 + C:0E1BH LINE# 94 + C:0E1DH LINE# 95 + ------- ENDPROC _IIC_SENDBYTE + ------- PROC IIC_RECBYTE + ------- DO + D:0004H SYMBOL i + D:0005H SYMBOL da + ------- ENDDO + C:0F7BH LINE# 98 + C:0F7BH LINE# 99 + C:0F7BH LINE# 101 + C:0F87H LINE# 102 + C:0F87H LINE# 103 + C:0F87H LINE# 104 + C:0F8AH LINE# 105 + C:0F8EH LINE# 106 + C:0F94H LINE# 107 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 19 + + + C:0F96H LINE# 108 + C:0F9BH LINE# 109 + C:0F9EH LINE# 110 + C:0FA0H LINE# 111 + ------- ENDPROC IIC_RECBYTE + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:0FA1H LINE# 117 + C:0FA1H LINE# 118 + C:0FA1H LINE# 120 + C:0FA1H LINE# 121 + C:0FA1H LINE# 122 + C:0FA4H LINE# 123 + C:0FA9H LINE# 124 + C:0FACH LINE# 125 + C:0FAFH LINE# 126 + C:0FB4H LINE# 127 + C:0FB7H LINE# 128 + C:0FBCH LINE# 129 + C:0FC1H LINE# 130 + C:0FC4H LINE# 131 + C:0FC6H LINE# 132 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:1107H LINE# 134 + C:1107H LINE# 135 + C:1107H LINE# 136 + C:1107H LINE# 137 + C:1107H LINE# 138 + C:110AH LINE# 139 + C:110FH LINE# 140 + C:1112H LINE# 141 + C:1117H LINE# 142 + C:111AH LINE# 143 + ------- ENDPROC _DA_WRITE + ------- PROC _EEPROM_WRITE + D:000EH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0012H SYMBOL num + C:0DA5H LINE# 152 + C:0DABH LINE# 153 + C:0DABH LINE# 154 + C:0DABH LINE# 155 + C:0DAEH LINE# 156 + C:0DB1H LINE# 158 + C:0DB6H LINE# 159 + C:0DB9H LINE# 161 + C:0DC0H LINE# 162 + C:0DC0H LINE# 163 + C:0DD5H LINE# 164 + C:0DD8H LINE# 165 + C:0DDDH LINE# 166 + C:0DDFH LINE# 167 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 20 + + + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:0013H SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0017H SYMBOL num + C:0C99H LINE# 175 + C:0C9FH LINE# 176 + C:0C9FH LINE# 177 + C:0C9FH LINE# 178 + C:0CA2H LINE# 179 + C:0CA5H LINE# 181 + C:0CAAH LINE# 182 + C:0CADH LINE# 184 + C:0CB0H LINE# 185 + C:0CB5H LINE# 186 + C:0CB8H LINE# 188 + C:0CBFH LINE# 189 + C:0CBFH LINE# 190 + C:0CD4H LINE# 191 + C:0CDCH LINE# 192 + C:0CE1H LINE# 193 + C:0CE3H LINE# 195 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:100DH PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:1121H PUBLIC _Delay_OneWire + C:0F2DH PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:0F54H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:0EC8H PUBLIC rd_temperature + D:00D0H PUBLIC PSW + C:111DH SYMBOL L?0017 + ------- PROC L?0016 + ------- ENDPROC L?0016 + C:111DH SYMBOL L?0017 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + C:1121H LINE# 7 + C:1121H LINE# 8 + C:1121H LINE# 9 + C:1128H LINE# 10 + C:1132H LINE# 12 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0003H SYMBOL dat + ------- DO + D:0002H SYMBOL i + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 21 + + + ------- ENDDO + C:0F2DH LINE# 15 + C:0F2FH LINE# 16 + C:0F2FH LINE# 18 + C:0F3BH LINE# 19 + C:0F3BH LINE# 20 + C:0F3DH LINE# 21 + C:0F41H LINE# 22 + C:0F44H LINE# 23 + C:0F46H LINE# 24 + C:0F4AH LINE# 25 + C:0F4DH LINE# 26 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0002H SYMBOL i + D:0003H SYMBOL dat + ------- ENDDO + C:100DH LINE# 30 + C:100DH LINE# 31 + C:100DH LINE# 35 + C:1019H LINE# 36 + C:1019H LINE# 37 + C:101BH LINE# 38 + C:101FH LINE# 39 + C:1021H LINE# 40 + C:1024H LINE# 41 + C:1024H LINE# 42 + C:1027H LINE# 43 + C:1027H LINE# 44 + C:102AH LINE# 45 + C:102DH LINE# 46 + C:102FH LINE# 47 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.4 SYMBOL initflag + ------- ENDDO + C:0F54H LINE# 50 + C:0F54H LINE# 51 + C:0F54H LINE# 52 + C:0F56H LINE# 54 + C:0F58H LINE# 55 + C:0F5FH LINE# 56 + C:0F61H LINE# 57 + C:0F68H LINE# 58 + C:0F6AH LINE# 59 + C:0F71H LINE# 60 + C:0F75H LINE# 61 + C:0F78H LINE# 63 + C:0F7AH LINE# 64 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 22 + + + C:0EC8H LINE# 65 + C:0EC8H LINE# 66 + C:0EC8H LINE# 68 + C:0ECBH LINE# 69 + C:0ED0H LINE# 70 + C:0ED5H LINE# 71 + C:0ED8H LINE# 72 + C:0EDDH LINE# 73 + C:0EE2H LINE# 74 + C:0EE7H LINE# 75 + C:0EEAH LINE# 76 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ULTRASOUND + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + B:00D8H.7 PUBLIC CF + D:00F9H PUBLIC CH + D:00A8H PUBLIC IE + D:00E9H PUBLIC CL + B:00D8H.6 PUBLIC CR + D:00B8H PUBLIC IP + C:0E59H PUBLIC Ut_Wave_Data + D:00D9H PUBLIC CMOD + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:10C0H PUBLIC Ut_Wave_Init + C:0003H PUBLIC Delay12us + B:0090H.1 PUBLIC Rx + B:0090H.0 PUBLIC Tx + D:00D0H PUBLIC PSW + ------- PROC DELAY12US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0003H LINE# 7 + C:0003H LINE# 8 + C:0003H LINE# 11 + C:0004H LINE# 12 + C:0005H LINE# 13 + C:0007H LINE# 14 + C:0009H LINE# 15 + ------- ENDPROC DELAY12US + ------- PROC UT_WAVE_INIT + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:10C0H LINE# 17 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 23 + + + C:10C0H LINE# 18 + C:10C0H LINE# 20 + C:10CCH LINE# 21 + C:10CCH LINE# 22 + C:10CEH LINE# 23 + C:10D1H LINE# 24 + C:10D3H LINE# 25 + C:10D6H LINE# 26 + C:10D9H LINE# 27 + ------- ENDPROC UT_WAVE_INIT + ------- PROC UT_WAVE_DATA + ------- DO + D:0006H SYMBOL time + ------- ENDDO + C:0E59H LINE# 29 + C:0E59H LINE# 30 + C:0E59H LINE# 32 + C:0E5CH LINE# 33 + C:0E60H LINE# 34 + C:0E63H LINE# 35 + C:0E65H LINE# 36 + C:0E6BH LINE# 37 + C:0E6DH LINE# 38 + C:0E70H LINE# 39 + C:0E70H LINE# 40 + C:0E78H LINE# 41 + C:0E8CH LINE# 42 + C:0E8CH LINE# 44 + C:0E8CH LINE# 45 + C:0E8EH LINE# 46 + C:0E90H LINE# 47 + C:0E90H LINE# 48 + ------- ENDPROC UT_WAVE_DATA + ------- ENDMOD ULTRASOUND + + ------- MODULE ?C?FPADD + C:0015H PUBLIC ?C?FPADD + C:0011H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + + ------- MODULE ?C?FPMUL + C:0106H PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FPDIV + C:020FH PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FCAST + C:02B6H PUBLIC ?C?FCASTC + C:02B1H PUBLIC ?C?FCASTI + C:02ACH PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:02EAH PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 20:57:34 PAGE 24 + + + + ------- MODULE ?C?CLDPTR + C:036BH PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CLDOPTR + C:0384H PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:03B1H PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?CSTOPTR + C:03C3H PUBLIC ?C?CSTOPTR + ------- ENDMOD ?C?CSTOPTR + + ------- MODULE ?C?IMUL + C:03E5H PUBLIC ?C?IMUL + ------- ENDMOD ?C?IMUL + + ------- MODULE ?C?UIDIV + C:03F7H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?SIDIV + C:044CH PUBLIC ?C?SIDIV + ------- ENDMOD ?C?SIDIV + + ------- MODULE ?C?SLDIV + C:0CE6H PUBLIC ?C?SLDIV + ------- ENDMOD ?C?SLDIV + + ------- MODULE ?C?LNEG + C:0482H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + + ------- MODULE ?C?ULDIV + C:04CCH PUBLIC ?C?ULDIV + ------- ENDMOD ?C?ULDIV + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC + +Program Size: data=115.5 xdata=0 code=4497 +LINK/LOCATE RUN COMPLETE. 3 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Init.obj b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Init.obj new file mode 100644 index 0000000..eb5cd0c Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Init.obj differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Key.obj b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Key.obj new file mode 100644 index 0000000..6138ac1 Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Key.obj differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Led.obj b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Led.obj new file mode 100644 index 0000000..6c3f47c Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Led.obj differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Seg.obj b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Seg.obj new file mode 100644 index 0000000..3e5e359 Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Seg.obj differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Uart.obj b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Uart.obj new file mode 100644 index 0000000..22f63e6 Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/Uart.obj differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/ds1302.obj b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/ds1302.obj new file mode 100644 index 0000000..9f6e58d Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/ds1302.obj differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/iic.obj b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/iic.obj new file mode 100644 index 0000000..4eb21ac Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/iic.obj differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/main.obj b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/main.obj new file mode 100644 index 0000000..836e5c5 Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/main.obj differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/onewire.obj b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/onewire.obj new file mode 100644 index 0000000..c1ccc04 Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/onewire.obj differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/ultrasound.obj b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/ultrasound.obj new file mode 100644 index 0000000..ce8b5da Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/ultrasound.obj differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan new file mode 100644 index 0000000..c114528 Binary files /dev/null and b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan differ diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan.build_log.htm b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..7303baf --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan.build_log.htm @@ -0,0 +1,50 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 + Target DLL: VDM51.DLL +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\blue-bridge-cup-learning\\ʮ\ʮ\User\zuolan.uvproj +Project File Date: 01/25/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling ds1302.c... +compiling iic.c... +compiling onewire.c... +compiling ultrasound.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC +Program Size: data=115.5 xdata=0 code=4497 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 3 Warning(s). +
+ + diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan.hex b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan.hex new file mode 100644 index 0000000..9d2e6cb --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan.hex @@ -0,0 +1,340 @@ +:100C370008310A0A0A0A0A0A0A0A082800000000F4 +:100C47000000000008550000000000000000032518 +:100C57001111110145020550020305070901470A51 +:10106D00E4FFEFC3940874809480500F74312FF80F +:0B107D00760A74282FF8E4F60F80E7D5 +:011088002245 +:1010F100EFC39D501074312FF8E6700974312FF849 +:05110100760A0F80EBEF +:0111060022C6 +:10097700E53B6003020A2B753B01120BC48F21E58F +:10098700236521FF5521F522E521F45FF524852113 +:1009970023E5226404700EA203B39203F53FF546E4 +:1009A700C20212106DE52264057018300307A20217 +:1009B700B39202800B0546E54675F0038485F04641 +:1009C70012106DE52264087026200323AF46FEEF60 +:1009D70064017007A201B392018014EF64024E70A4 +:1009E7000E053FE53F75F0038485F03F12106DE576 +:1009F700226409702F30032C3002160547D3E547D0 +:100A070094507480948040047F0A8002AF478F47D8 +:100A1700220542E54275F0058485F042745025426F +:040A2700F8E6F545B3 +:010A2B0022A8 +:10055E00E53A45396003020976F539753A01FB7AB9 +:10056E00007925120EFC7F01120FA18F302001039E +:10057E00020667E527C4540F75F00AA4FFE5275459 +:10058E000F7C002FFFEC35F0FEAD4512044CED4C08 +:10059E00600302073A120E597543008F440541E578 +:1005AE004170020540FFAE40E4FCFD7BFF7AFFF98F +:1005BE00F8120CE6AE02AF038E408F41E54124FFE8 +:1005CE00FDE54034FFFCE41202B1AB4BAA4AA94947 +:1005DE00A848120106C004C005C006C007AC43AD52 +:1005EE0044E41202B1D003D002D001D000120015A3 +:1005FE00C004C005C006C007AC40AD41E41202B154 +:10060E00A804A905AA06AB07D007D006D005D004CA +:10061E0012020F8F4B8E4A8D498C48AF477E00EFEA +:10062E0024FBFDEE34FFFCD3E5449DE5439C5010C6 +:10063E00EF2405FFEE33FEC3E5449FE5439E5016BF +:10064E00053DD3E53D940374809480500302073A30 +:10065E00753D0402073A020737D3E53E94327480A3 +:10066E009480500302073AE530940A7480948040D7 +:10067E000302073A120E597543008F440541E541B6 +:10068E0070020540FFAE40E4FCFD7BFF7AFFF9F8F7 +:10069E00120CE6AE02AF038E408F41E54124FFFD02 +:1006AE00E54034FFFCE41202B1AB4BAA4AA949A8BB +:1006BE0048120106C004C005C006C007AC43AD44D5 +:1006CE00E41202B1D003D002D001D000120015C046 +:1006DE0004C005C006C007AC40AD41E41202B1A88B +:1006EE0004A905AA06AB07D007D006D005D0041280 +:1006FE00020F8F4B8E4A8D498C48AF477E00EF24F8 +:10070E00FBFDEE34FFFCD3E5449DE5439C5010EF1A +:10071E002405FFEE33FEC3E5449FE5439E500A05D4 +:10072E003DE53D5403F53D8003E4F53DC3E54F95AE +:10073E0044E54E9543500685434E85444FD3E54DD3 +:10074E009544E54C95435006E54D454C7006854362 +:10075E004C85444DD3E5449450E543940040047FCA +:10076E00FF802EC3E544940AE543940050047F3382 +:10077E00801FAC43AD44E41202B1E4FBFA798C78ED +:10078E004212020FE4FBFA794C7843120106120270 +:10079E00EA12110785303E300335753112A202E49C +:1007AE003304F532300211E54575F00A8475F00A0E +:1007BE008485F037E545800FE54775F00A8475F0BE +:1007CE000A8485F037E54775F00A8485F03822E50E +:1007DE004614603B1470030208672402600302098A +:1007EE0076E525C4540FF531E525540FF5327533F2 +:1007FE0010E526C4540FF534E526540FF53575363D +:10080E0010E527C4540FF537E527540FF538227538 +:10081E00310B3001047F0C80027F0D8F32AE43AF5F +:10082E00447C007D641203F77C007D0A1203F78D71 +:10083E0036AE43AF447C007D0A1203F77C007D0A7E +:10084E001203F78D37AE43AF447C007D0A1203F7D7 +:10085E008D387D077F0502097375310EE53F240F34 +:10086E00F532E53F14605D14700302092624026020 +:10087E0003020976AE4EAF4F7C037DE81203F77C80 +:10088E00007D0A1203F78D35AE4EAF4F7C007D64AE +:10089E001203F77C007D0A1203F78D36AE4EAF4F72 +:1008AE007C007D0A1203F77C007D0A1203F78D3758 +:1008BE00AE4EAF4F7C007D0A1203F78D387D077F59 +:1008CE0004020973E4FFFE7D207C41AB4BAA4AA9CA +:1008DE0049A8481201061202EAAB077E007C037D8E +:1008EE00E81203F77C007D0A1203F78D35EB75F0E5 +:1008FE00648475F00A8485F036EB75F00A8475F021 +:10090E000A8485F037EB75F00A8485F0387D067F12 +:10091E00041210F1752E0122AE4CAF4D7C037DE812 +:10092E001203F77C007D0A1203F78D35AE4CAF4DE6 +:10093E007C007D641203F77C007D0A1203F78D366E +:10094E00AE4CAF4D7C007D0A1203F77C007D0A127F +:10095E0003F78D37AE4CAF4D7C007D0A1203F78D39 +:08096E00387D077F041210F12F +:01097600225E +:100B4000200308E54670047F0180027F008F552056 +:100B5000030AE546640170047F0180027F008F561E +:100B600020030AE546640270047F0180027F008F43 +:100B7000572001047F0180027F008F58300129C374 +:100B8000E53D94037480948040047F0180027F00DF +:100B9000120FC7C3E53D94037480948040047F0125 +:100BA00080027F008F598008E4FF120FC7E4F559D7 +:100BB000D3E53094327480948040047F0180027FBA +:040BC000008F5A2226 +:10113300538E7F5389F0758A18758CFCC28DD28CBF +:05114300D2A9D2AF2289 +:03000B00020AB82E +:100AB800C0E0C0F0C083C082C0D075D000C000C004 +:100AC80001C002C003C004C005C006C007053BE55D +:100AD8003B640A7002F53B053AE53A70020539FFB6 +:100AE800AE39BE0109BFF406753900753A00053CF8 +:100AF800E53C64087002F53C7431253CF8E6FD7C61 +:100B0800007428253CF8E6FB7A00AF3C120E91747D +:100B180055253CF8E6FD7C00AF3C120E1ED007D0F0 +:100B280006D005D004D003D002D001D000D0D0D058 +:080B380082D083D0F0D0E0323E +:0E115C0000007F237E337DB6DDFEDEFCDFFA71 +:01116A002262 +:10103000120EC812115C1210501211337B007A008C +:101040007925120D2A12097712055E120B4080F5E0 +:100C67000108000109FF010A00010BFF010C000147 +:020C77000DFF6F +:100E1E00ED4C600FA8077401088002C333D8FC4262 +:100E2E0008800EA8077401088002C333D8FCF45260 +:100E3E0008E50865096013E508F4F580E5A0541F80 +:0A0E4E004480F5A053A01F85080999 +:010E58002277 +:100FC700EF6005430A408003530ABFE50A650B60DB +:100FD70011850A80E5A0541F44A0F5A053A01F85E2 +:020FE7000A0BF3 +:010FE90022E5 +:100FEA00EF6005430C108003530CEFE50C650D60B0 +:100FFA0011850C80E5A0541F44A0F5A053A01F85BD +:02100A000C0DCB +:01100C0022C1 +:100C7900135DC0F9A4B0999282F88090FFC78EC61F +:0F0C890089FEBFF78C087001020408102040801C +:100E91007580FFE5A0541F44E0F5A074702FF8E6BB +:100EA100F580E5A0541F44C0F5A053A01F745D2D2B +:100EB100F8E6F580EB4A600353807FE5A0541F44B8 +:070EC100E0F5A053A01F2281 +:100BC400E4FFC2C4D2C2D2B5D2B420B3027F04209F +:100BD400B2027F0520B1027F0620B0027F07D2C493 +:100BE400C2C2D2B5D2B420B3027F0820B2027F09B8 +:100BF40020B1027F0A20B0027F0BD2C4D2C2C2B598 +:100C0400D2B420B3027F0C20B2027F0D20B1027F48 +:100C14000E20B0027F0FD2C4D2C2D2B5C2B420B368 +:100C2400027F1020B2027F1120B1027F1220B00295 +:020C34007F132C +:010C3600229B +:101050007580FFE5A0541F4480F5A053A01FE4F560 +:0D10600080E5A0541F44A0F5A053A01F225E +:10108900E4FEEEC3940874809480500FC297EF1366 +:0B10990092A3EFC313FFD2970E80E775 +:0110A4002229 +:10114800C29300C29700D29300121089AF05121003 +:0411580089C2932293 +:100D6800E4FDC29300C29700D29300121089E4FFF9 +:100D7800EFC39408748094805011C297EDC313FD9B +:100D880030A303430580D2970F80E5C29300C29732 +:0C0D980000D29700C2A300D2A300AF0558 +:010DA400222C +:060D2A008B188A19891ADA +:100D3000E4FD7F8E121148E4FCECC39403748094AC +:100D400080501EEC25E0FFC374849FFFAB18AA19E6 +:100D5000A91A8C82758300120384FD1211480C803D +:080D6000D87D807F8E0211484E +:060EFC008B188A19891A07 +:100F0200E4FCECC3940374809480501EEC25E0FF53 +:100F1200C374859FFF120D68AB18AA19A91A8C8297 +:0A0F2200758300EF1203C30C80D8A2 +:010F2C0022A2 +:04117A00D2A07F057B +:08117E0000AE071FEE70F9221C +:0F116B00D2A112117AC2A17F0512117EC2A02259 +:0C118600C2A112117AD2A17F0502117ED5 +:1010DA00C2A0A20492A17F0512117E12117AC2A0A7 +:0710EA00D2A17F0502117E77 +:0A10A500AB0712116B7F90120DE9EA +:1010AF0012117AA2A19204C2A07F0512117EA2048E +:0110BF00220E +:070DE200AB0512116B7FA0AD +:020DE900AD0754 +:100DEB00E4FCECC39408748094805024C2A07F056B +:100DFB0012117EED30E704D2A18002C2A17F051251 +:100E0B00117ED2A0ED25E0FD7F0512117E0C80D264 +:020E1B00C2A073 +:010E1D0022B2 +:100F7B00E4FCECC3940874809480501712117AED42 +:100F8B0025E0FD30A103430501C2A07F0512117EB0 +:050F9B000C80DFAF0532 +:010FA000222E +:100FA1001210A5AF03120DE91210AF12116B7F9150 +:100FB100120DE91210AF120F7BAD07D2041210DA35 +:050FC100121186AF05CE +:010FC6002208 +:101107001210A57F41120DE91210AFAF03120DE9BE +:061117001210AF02118668 +:100DA5008B0E8A0F8910120DE21210AFAF03120DD0 +:100DB500E91210AFAF121512EF601FAB0E0510E56B +:100DC50010AA0F7002050F14F912036BFF120DE93B +:0D0DD5001210AF7FC812117E80DA02118665 +:100C99008B138A148915120DE21210AFAF03120DCE +:100CA900E91210AF12116B7FA1120DE91210AFAF4B +:100CB900171517EF6024120F7BAB130515E515AA5D +:100CC900147002051414F9EF1203B1E5176004C298 +:0D0CD900048002D2041210DA80D5021186C8 +:04111D007F057E00CC +:101121007C007D0C1203E5EF1FAC0670011E4C70B4 +:02113100F622A4 +:020F2D00AB0710 +:100F2F00E4FAEAC39408748094805012C294EB13CD +:100F3F00929412111DD294EBC313FB0A80E47F0528 +:050F4F007E00021121EB +:10100D00E4FAEAC39408748094805014C294EBC33C +:10101D0013FBD29430940343038012111D0A80E216 +:02102D00AF030F +:01102F00229E +:100F5400C204D2947F0C7E00121121C2947F507E71 +:100F640000121121D2947F0A7E00121121A29492C0 +:060F74000412111DA2048D +:010F7A002254 +:100EC800120F547FCC120F2D7F44120F2D120F5486 +:100ED8007FCC120F2D7FBE120F2D12100DA90712F5 +:100EE800100DEFAD01FCEC1202B1E4FBFA79807849 +:040EF8004102020FA2 +:0600030000007F26DFFE75 +:0100090022D4 +:1010C000E4FEEEC3940874809480500DD290120018 +:0910D00003C2901200030E80E936 +:0110D90022F4 +:100E5900E4F5D9F5E9F5F91210C0D2DE3091033085 +:100E6900DFFAC2DE20DF1CAFF9EFFEADE9EDFFAC22 +:100E790006E41202B17B967A43798B783C1201061B +:070E89000202EAC2DF7F0054 +:010E9000223F +:10000E00020356E86480F8E933E83360110460F0C7 +:10001E00ED33EC337009E8FCE9FDEAFEEBFF220458 +:10002E0060DED3EB9FEA9EE99DE8C2E78CF0C2F753 +:10003E0095F0400CE8CCF8E9CDF9EACEFAEBCFFB1F +:10004E0012032185D0F05804700320D5B3E8047054 +:10005E00075002B2D502036092D5EC0460F7E4CCEF +:10006E00C0E0C398F8603B94186008400DD0E0FBE8 +:10007E00020338E4FBFAC9FC8028E830E406E4C940 +:10008E00FBE4CAFCE830E305E4C9CACBFCE854073C +:10009E006010F8C3E913F9EA13FAEB13FBEC13FC47 +:1000AE00D8F130F52FC3E49CFCEF9BFFEE9AFEEDEA +:1000BE0099FDD0E0FBEF4E4D4C701222DB03020394 +:1000CE005DEC2CFCEF33FFEE33FEED33FDED30E750 +:1000DE00EB020338EF2BFFEE3AFEED39FDD0E0FBDD +:1000EE0050130BBB0003020360ED13FDEE13FEEF86 +:0800FE0013FFEC13FC020338B0 +:10010600EC4D6011E8497017ED33EC3304600DE4F3 +:10011600FCFFFEFD22E933E8330470F802035612B1 +:10012600032158046009E4CC2481500628500902B2 +:10013600036028400302035DC0E0EB4A7044B980C7 +:1001460006D0E0FB02034CEF4E701CBD8008EBFFAF +:10015600EAFEE9FD80EBE98DF0A4FEE5F00201EF91 +:10016600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89D4 +:10017600F0A42EFFE435F0CD89F0A42DFEE435F091 +:100186008067EF4E7005BD80D780C3EF8BF0A4ACBF +:10019600F0EE8BF0A42CFCE435F0F8EF8AF0A42CFA +:1001A600E5F038FCE433CB8DF0A42CFCE5F03BF80D +:1001B600EE8AF0A42CFCE5F038F8E433CF89F0A4FD +:1001C6002CFCE5F038CF3400CE89F0A42FFFE5F003 +:1001D6003EFEE433C98DF0A42EFEE5F039CD8AF05B +:1001E600A42FFFE5F03EFEE43DFD33D0E0FB5007D3 +:1001F6000BBB000F020360EC2CFCEF33FFEE33FE6B +:06020600ED33FD02033898 +:10020C00020360EC5D046005E859047003020356B8 +:10021C00120321580460F6EC4860F2EC7004FDFE09 +:10022C00FF22C860DB2481C85009C39860025006C5 +:10023C0002035D9850CAF582E9294B4A7005AB82DE +:10024C0002034C75F0007C1A7880C3EF9BEE9AED9C +:10025C0099400DC3EF9BFFEE9AFEED99FDE842F03D +:10026C00DC23ACF0D0E0FFD0E0FED0E0FDAB822090 +:10027C00E7101BEB60BAEC2CFCEF33FFEE33FEED1A +:10028C0033FD020338E803F830E705C0F075F000E1 +:10029C00EF2FFFEE33FEED33FD40B830E7C280AAFE +:1002AC0075F020800E75F010800575F0087D007ECD +:1002BC00007F003392D530D503120482EC3340100A +:1002CC00EF33FFEE33FEED33FDEC33FCD5F0ED22D6 +:0E02DC00E5F0247EA2D513CC92E7CDCEFF2212 +:1002EA00EDD2E7CD33EC3392D524814006E4FFFE0C +:1002FA00FDFC22FCE4CFCECDCC24E0501174FF806B +:10030A00EDC3CC13CCCD13CDCE13CECF13CF047007 +:07031A00F030D5DE02048281 +:10032100E9D2E7C933E833F892D5EDD2E7CD33EC22 +:0703310033FC5002B2D5229B +:10033800EC30E7100FBF000C0EBE00080DBD000426 +:100348000BEB6014A2D5EB13FCED92E7FD2274FFD2 +:10035800FCFDFEFF22E480F8A2D574FF13FC7D802B +:03036800E480EF3F +:03000000020A2CC5 +:0C0A2C00787FE4F6D8FD758177020A732C +:10036B00BB010689828A83E0225002E722BBFE0290 +:09037B00E32289828A83E49322C3 +:10038400BB010CE58229F582E5833AF583E022502E +:1003940006E92582F8E622BBFE06E92582F8E22278 +:0D03A400E58229F582E5833AF583E4932292 +:1003B100BB010689828A83F0225002F722BBFE012B +:0203C100F32225 +:1003C300F8BB010DE58229F582E5833AF583E8F070 +:1003D300225006E92582C8F622BBFE05E92582C81C +:0203E300F22204 +:1003E500EF8DF0A4A8F0CF8CF0A428CE8DF0A42E2C +:0203F500FE22E6 +:1003F700BC000BBE0029EF8DF084FFADF022E4CCEA +:10040700F875F008EF2FFFEE33FEEC33FCEE9DECB2 +:10041700984005FCEE9DFE0FD5F0E9E4CEFD22EDF8 +:10042700F8F5F0EE8420D21CFEADF075F008EF2F42 +:10043700FFED33FD4007985006D5F0F222C398FD33 +:050447000FD5F0EA22D0 +:10044C00C2D5EC30E709B2D5E4C39DFDE49CFCEECB +:10045C0030E715B2D5E4C39FFFE49EFE1203F7C349 +:10046C00E49DFDE49CFC80031203F730D507C3E444 +:06047C009FFFE49EFE223A +:100CE600C2D5E830E70FB2D5E4C39BFBE49AFAE439 +:100CF60099F9E498F8EC30E717B2D5120D1C1204F6 +:100D0600CCE4C39BFBE49AFAE499F9E498F88003EF +:100D16001204CC30D50DE4C39FFFE49EFEE49DFD96 +:040D2600E49CFC222B +:0E048200C3E49FFFE49EFEE49DFDE49CFC228B +:100A3800021030E493A3F8E493A34003F68001F294 +:100A480008DFF48029E493A3F85407240CC8C333BF +:100A5800C4540F4420C8834004F456800146F6DF8E +:100A6800E4800B0102040810204080900C37E47EDB +:100A7800019360BCA3FF543F30E509541FFEE49383 +:100A8800A360010ECF54C025E060A840B8E493A34A +:100A9800FAE493A3F8E493A3C8C582C8CAC583CA75 +:100AA800F0A3C8C582C8CAC583CADFE9DEE780BE2D +:010C9800005B +:1004900075F008758200EF2FFFEE33FECD33CDCC23 +:1004A00033CCC58233C5829BED9AEC99E5829840A6 +:1004B0000CF582EE9BFEED9AFDEC99FC0FD5F0D683 +:1004C000E4CEFBE4CDFAE4CCF9A88222B800C1B9AD +:1004D0000059BA002DEC8BF084CFCECDFCE5F0CBEB +:1004E000F97818EF2FFFEE33FEED33FDEC33FCEB24 +:1004F00033FB10D703994004EB99FB0FD8E5E4F9DF +:10050000FA227818EF2FFFEE33FEED33FDEC33FCCB +:10051000C933C910D7059BE99A4007EC9BFCE99ABF +:10052000F90FD8E0E4C9FAE4CCFB2275F010EF2F04 +:10053000FFEE33FEED33FDCC33CCC833C810D70704 +:100540009BEC9AE899400AED9BFDEC9AFCE899F83F +:0E0550000FD5F0DAE4CDFBE4CCFAE4C8F922D2 +:00000001FF diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan.lnp b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan.lnp new file mode 100644 index 0000000..e3c9e8d --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/Objects/zuolan.lnp @@ -0,0 +1,11 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\ds1302.obj", +".\Objects\iic.obj", +".\Objects\onewire.obj", +".\Objects\ultrasound.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/main.c b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/main.c new file mode 100644 index 0000000..b628acf --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/main.c @@ -0,0 +1,320 @@ +#include "main.h" +#define LIGHT_NUM 50 +#define DARK_NUM 10 +/* */ +uchar Key_Slow_Down; // רñ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾݴ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Сݴ +uchar Seg_Pos; // ɨרñ +uint Seg_Slow_Down; // ܼרñ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Ledʾݴ +uchar ucRtc[3] = {0x11, 0x11, 0x11}; +/**/ +bit Seg_show_mode; // 0 1 +uchar data_show_mode; // 0ʱ 1 2¼ +bit celi_show_mode; // 0ʱ 1 +bit burst_mode; // 0ģʽ 1ʱģʽ +uchar data_show_memory; // 0ֵ 1Сֵ 2ƽֵ +/**/ +uchar collection_time = 2; +uchar collection_time_arr[5] = {2, 3, 5, 7, 9}; +uchar collection_time_index; +uchar dis_demo = 10; +uint dis_value; +uint dis_max; +uint dis_min; +uint collection_count; +uchar wring_count; +bit wring_flag; +float dis_aver; + +uchar light_value, light_value_old; +void init_Seg() +{ + uchar i; + for (i = 0; i < 8; i++) + { + Seg_Buf[i] = 10; + Seg_Point[i] = 0; + } +} +void hide_high_Seg(uchar start_num, uchar end_num) +{ + uchar i; + for (i = start_num; i < end_num; i++) + { + if (Seg_Buf[i] != 0) + break; + else + Seg_Buf[i] = 10; + } +} +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Old, Key_Up; // רñ + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; // ̼ٳ + + Key_Val = Key_Read(); // ʵʱȡֵ + Key_Down = Key_Val & (Key_Old ^ Key_Val); // ׽½ + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); // ׽Ͻ + Key_Old = Key_Val; // ɨ + if (Key_Down == 4) + { + Seg_show_mode ^= 1; + celi_show_mode = data_show_mode = data_show_memory = 0; + init_Seg(); + } + if (Key_Down == 5) + { + // + if (Seg_show_mode) + { + celi_show_mode ^= 1; + init_Seg(); + } + // ݽ + else + { + data_show_mode = (++data_show_mode) % 3; + init_Seg(); + } + } + if (Key_Down == 8 && Seg_show_mode == 0) + { + if (data_show_mode == 1) + burst_mode ^= 1; + else if (data_show_mode == 2) + { + data_show_memory = (++data_show_memory) % 3; + init_Seg(); + } + } + if (Key_Down == 9 && Seg_show_mode == 1) + { + if (celi_show_mode) + dis_demo = (++dis_demo > 80) ? 10 : dis_demo; + else + { + collection_time_index = (++collection_time_index) % 5; + collection_time = collection_time_arr[collection_time_index]; + } + } +} + +/* Ϣ */ +void Seg_Proc() +{ + uchar temp_dis; + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; // ܼٳ + Read_Rtc(ucRtc); + light_value = Ad_Read(0x01); + // ʱģʽ + if (burst_mode) + { + if ((ucRtc[2] / 16 * 10 + ucRtc[2] % 16) % collection_time == 0) + { + dis_value = Ut_Wave_Data(); + collection_count = (++collection_count) % 65535; + dis_aver = (dis_aver * (collection_count - 1) + dis_value) / collection_count; + if (dis_value > dis_demo - 5 || dis_value < dis_demo + 5) + { + if (++wring_count > 3) + { + wring_count = 4; + } + } + else + wring_count = 0; + } + } + // ģʽ + else + { + // -> + if (light_value_old > LIGHT_NUM && light_value < DARK_NUM) + { + dis_value = Ut_Wave_Data(); + collection_count = (++collection_count) % 65535; + dis_aver = (dis_aver * (collection_count - 1) + dis_value) / collection_count; + if (dis_value > dis_demo - 5 || dis_value < dis_demo + 5) + wring_count = (++wring_count) % 4; + else + wring_count = 0; + } + } + if (dis_max < dis_value) + dis_max = dis_value; + if (dis_min > dis_value || dis_min == 0) + dis_min = dis_value; + if (dis_value > 80) + Da_Write(255); + else if (dis_value < 10) + Da_Write(51); + else + Da_Write(dis_value / 70.0 * 4 * 51); + light_value_old = light_value; + // + if (Seg_show_mode) + { + Seg_Buf[0] = 18; // P + Seg_Buf[1] = (uchar)celi_show_mode + 1; + if (celi_show_mode) + { + Seg_Buf[6] = collection_time / 10 % 10; + Seg_Buf[7] = collection_time % 10; + } + else + { + Seg_Buf[6] = dis_demo / 10 % 10; + Seg_Buf[7] = dis_demo % 10; + } + } + // ݽ + else + { + switch (data_show_mode) + { + case 0: + /* ʱʾ */ + Seg_Buf[0] = ucRtc[0] / 16; + Seg_Buf[1] = ucRtc[0] % 16; + Seg_Buf[2] = 16; + Seg_Buf[3] = ucRtc[1] / 16; + Seg_Buf[4] = ucRtc[1] % 16; + Seg_Buf[5] = 16; + Seg_Buf[6] = ucRtc[2] / 16; + Seg_Buf[7] = ucRtc[2] % 16; + break; + case 1: + /*ʾ*/ + Seg_Buf[0] = 11; // L + Seg_Buf[1] = (burst_mode) ? 12 : 13; + Seg_Buf[5] = dis_value / 100 % 10; + Seg_Buf[6] = dis_value / 10 % 10; + Seg_Buf[7] = dis_value % 10; + hide_high_Seg(5, 7); + break; + case 2: + /*ݼ¼*/ + Seg_Buf[0] = 14; // H + Seg_Buf[1] = data_show_memory + 15; + switch (data_show_memory) + { + case 0: + /* ֵ */ + Seg_Buf[4] = dis_max / 1000 % 10; + Seg_Buf[5] = dis_max / 100 % 10; + Seg_Buf[6] = dis_max / 10 % 10; + Seg_Buf[7] = dis_max % 10; + hide_high_Seg(4, 7); + break; + case 1: + /*ƽֵ*/ + temp_dis = dis_aver * 10; + Seg_Buf[4] = temp_dis / 1000 % 10; + Seg_Buf[5] = temp_dis / 100 % 10; + Seg_Buf[6] = temp_dis / 10 % 10; + Seg_Buf[7] = temp_dis % 10; + hide_high_Seg(4, 6); + Seg_Point[6] = 1; + break; + case 2: + /*Сֵ*/ + Seg_Buf[4] = dis_min / 1000 % 10; + Seg_Buf[5] = dis_min / 100 % 10; + Seg_Buf[6] = dis_min / 10 % 10; + Seg_Buf[7] = dis_min % 10; + hide_high_Seg(4, 7); + break; + } + break; + } + } +} + +/* ʾ */ +void Led_Proc() +{ + ucLed[0] = (Seg_show_mode == 0 && data_show_mode == 0); + ucLed[1] = (Seg_show_mode == 0 && data_show_mode == 1); + ucLed[2] = (Seg_show_mode == 0 && data_show_mode == 2); + ucLed[3] = !burst_mode; + if (burst_mode) + { + Beep(wring_count >= 3); + ucLed[4] = (wring_count >= 3); + } + else + { + Beep(0); + ucLed[4] = 0; + } + ucLed[5] = (light_value > LIGHT_NUM); +} + +/* ʱ0жϳʼ */ +void Timer0Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; // ʱж0 + EA = 1; // жϴ +} + +/* ʱ0жϷ */ +void Timer0Server() interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; // ̼ר + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; // ܼר + if (++Seg_Pos == 8) + Seg_Pos = 0; // ʾר + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void Delay750ms() //@12MHz +{ + unsigned char i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} + +/* Main */ +void main() +{ + // ¶ȶȡĻ + rd_temperature(); + Delay750ms(); + System_Init(); + Timer0Init(); + Set_Rtc(ucRtc); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/main.h b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/main.h new file mode 100644 index 0000000..3f72b5d --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/main.h @@ -0,0 +1,15 @@ +/* 头文件声明区 */ +#include //单片机寄存器专用头文件 +#include //初始化底层驱动专用头文件 +#include //Led底层驱动专用头文件 +#include //按键底层驱动专用头文件 +#include //数码管底层驱动专用头文件 +#include //标准库底层驱动专用头文件 +#include //温度传感器底层驱动 +#include //ds1302底层驱动专用头文件 +#include //IIC底层驱动专用头文件 +#include //超声波 +#include +#include +#define uchar unsigned char +#define uint unsigned int diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/zuolan.uvgui.haze b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/zuolan.uvgui.haze new file mode 100644 index 0000000..defdaf3 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/zuolan.uvgui.haze @@ -0,0 +1,1378 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -32000 + -32000 + + + -1 + -1 + + + 223 + 240 + 1432 + 1037 + + + + 0 + + 467 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000300000002000000010000005A433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CD5E6CCE25CB5DACAAEB6FEBDECB9FAC8FC5CB5DACAAEB6FEBDECB9FAC8FC5C4472697665725C6969632E6300000000056969632E6300000000F0A0A100FFFFFFFF25443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF59433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CD5E6CCE25CB5DACAAEB6FEBDECB9FAC8FC5CB5DACAAEB6FEBDECB9FAC8FC5C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000094010000660000000006000036020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100006600000070040000D3000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000370200000006000006030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000060300000006000019030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100006600000070040000D3000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200006600000070040000B7010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100001F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000009001000036020000000000004F000000900100001F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000A701000070040000280200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000001F020000000600002302000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000003A020000000600001D030000000000002302000000060000060300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2076 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000094B65795F636F756E7496000000000000000400094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E676500000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 2 + + ..\Driver\iic.c + 0 + 115 + 1 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 17 + 115 + 121 + 1 + + 0 + + + + +
diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/zuolan.uvopt b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/zuolan.uvopt new file mode 100644 index 0000000..d9acf7b --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/zuolan.uvopt @@ -0,0 +1,284 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + -1 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\ds1302.c + ds1302.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + 2 + 9 + 1 + 0 + 0 + 0 + 0 + ..\Driver\ultrasound.c + ultrasound.c + 0 + 0 + + + +
diff --git a/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/zuolan.uvproj b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/zuolan.uvproj new file mode 100644 index 0000000..4b5bd01 --- /dev/null +++ b/题目/真题/12 第十二届国赛_左岚/第十二届国赛/User/zuolan.uvproj @@ -0,0 +1,420 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + ds1302.c + 1 + ..\Driver\ds1302.c + + + iic.c + 1 + ..\Driver\iic.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + ultrasound.c + 1 + ..\Driver\ultrasound.c + + + + + + + +
diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第12届省赛第一次-DS18B20与DAC输出.pdf b/题目/真题/12 第十二届省赛_左岚/第一套/第12届省赛第一次-DS18B20与DAC输出.pdf new file mode 100644 index 0000000..7628449 Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第12届省赛第一次-DS18B20与DAC输出.pdf differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛.jpg b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛.jpg new file mode 100644 index 0000000..7686e18 Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛.jpg differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/.vscode/settings.json b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/.vscode/settings.json new file mode 100644 index 0000000..e25b9c7 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/.vscode/settings.json @@ -0,0 +1,14 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c" + } +} \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Init.c b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Init.h b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Key.c b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Key.c new file mode 100644 index 0000000..dbf9fe3 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Key.c @@ -0,0 +1,43 @@ +#include + +unsigned char Key_Read() +{ + unsigned char temp = 0; + //1 + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if(P33 == 0) temp = 4; + if(P32 == 0) temp = 5; + if(P31 == 0) temp = 6; + if(P30 == 0) temp = 7; + //2 + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if(P33 == 0) temp = 8; + if(P32 == 0) temp = 9; + if(P31 == 0) temp = 10; + if(P30 == 0) temp = 11; + //3 + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if(P33 == 0) temp = 12; + if(P32 == 0) temp = 13; + if(P31 == 0) temp = 14; + if(P30 == 0) temp = 15; + //4 + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if(P33 == 0) temp = 16; + if(P32 == 0) temp = 17; + if(P31 == 0) temp = 18; + if(P30 == 0) temp = 19; + return temp; +} \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Key.h b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Key.h new file mode 100644 index 0000000..898c524 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Key.h @@ -0,0 +1,3 @@ +#include + +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Led.c b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Led.c new file mode 100644 index 0000000..f1df0fe --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Led.c @@ -0,0 +1,56 @@ +#include +//ַ0-7Ƿʹ +void Led_Disp(unsigned char addr,enable) +{ + //ֵ֤Ϊı + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + //ĵǰ״̬ + if(enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + //ǰ״̬֮ǰ״̬ͬвled + if(temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} + + +void Beep(unsigned char flag) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if(flag) + temp |= 0x40; + else + temp &= ~0x40; + if(temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} + +void Relay(unsigned char flag) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if(flag) + temp |= 0x10; + else + temp &= ~0x10; + if(temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Led.h b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Led.h new file mode 100644 index 0000000..493bdf6 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Led.h @@ -0,0 +1,5 @@ +#include + +void Led_Disp(unsigned char addr,enable); +void Beep(unsigned char flag); +void Relay(unsigned char flag); \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Seg.c b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Seg.c new file mode 100644 index 0000000..8974097 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Seg.c @@ -0,0 +1,22 @@ +#include +// ѡ 0 1 2 3 4 5 6 7 8 9 C P A +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0xc6, 0x8c, 0x88}; +// λѡ 2^0,2^1,2^2,2^3,2^4,2^52^6,2^7һ˸ +unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + +void Seg_Disp(unsigned char wela, dula, point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Seg.h b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Seg.h new file mode 100644 index 0000000..3c5c898 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/Seg.h @@ -0,0 +1,3 @@ +#include + +void Seg_Disp(unsigned char wela,dula,point); \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ds1302.c b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ds1302.c new file mode 100644 index 0000000..a7a2946 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ds1302.c @@ -0,0 +1,86 @@ +#include "ds1302.h" +#include +#include + +sbit SCK = P1 ^ 7; +sbit SDA = P2 ^ 3; +sbit RST = P1 ^ 3; + +// дֽ +void Write_Ds1302(unsigned char temp) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + SCK = 0; + SDA = temp & 0x01; + temp >>= 1; // һλһλд + SCK = 1; + } +} + +// DS1302Ĵд +void Write_Ds1302_Byte(unsigned char address, unsigned char dat) +{ + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST = 0; +} + +// DS1302Ĵ +unsigned char Read_Ds1302_Byte(unsigned char address) +{ + unsigned char i, temp = 0x00; + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + for (i = 0; i < 8; i++) + { + SCK = 0; + temp >>= 1; + if (SDA) + temp |= 0x80; + SCK = 1; + } + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + SCK = 1; + _nop_(); + SDA = 0; + _nop_(); + SDA = 1; + _nop_(); + return (temp); +} + +void Set_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + Write_Ds1302_Byte(0x8e, 0x00); + for (i = 0; i < 3; i++) + { + Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + } + Write_Ds1302_Byte(0x8e, 0x80); +} + +void Read_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + for (i = 0; i < 3; i++) + { + ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + } +} \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ds1302.h b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ds1302.h new file mode 100644 index 0000000..bb8f991 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ds1302.h @@ -0,0 +1,12 @@ +#ifndef __DS1302_H +#define __DS1302_H + + + +void Write_Ds1302(unsigned char temp); +void Write_Ds1302_Byte( unsigned char address,unsigned char dat ); +unsigned char Read_Ds1302_Byte( unsigned char address ); +void Set_Rtc(unsigned char* ucRtc); +void Read_Rtc(unsigned char* ucRtc); + +#endif diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/iic.c b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/iic.c new file mode 100644 index 0000000..0135cf3 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/iic.c @@ -0,0 +1,196 @@ +/* + ˵: IIC + : Keil uVision 4.10 + Ӳ: CT107Ƭۺʵѵƽ̨ 805112MHz + : 2011-8-9 +*/ + +#include "iic.h" + + +#include "intrins.h" + +#define DELAY_TIME 5 + +#define Photo_Res_Channel 0x41 +#define Adj_Res_Channel 0x43 + + +//Ŷ +sbit SDA = P2^1; /* */ +sbit SCL = P2^0; /* ʱ */ + +void IIC_Delay(unsigned char i) +{ + do { + _nop_(); + } + while(i--); +} + +// +void IIC_Start(void) +{ + SDA = 1; + SCL = 1; + IIC_Delay(DELAY_TIME); + SDA = 0; + IIC_Delay(DELAY_TIME); + SCL = 0; +} + +//ֹͣ +void IIC_Stop(void) +{ + SDA = 0; + SCL = 1; + IIC_Delay(DELAY_TIME); + SDA = 1; + IIC_Delay(DELAY_TIME); +} + +//Ӧ +void IIC_SendAck(bit ackbit) +{ + SCL = 0; + SDA = ackbit; // 0Ӧ1Ӧ + IIC_Delay(DELAY_TIME); + SCL = 1; + IIC_Delay(DELAY_TIME); + SCL = 0; + SDA = 1; + IIC_Delay(DELAY_TIME); +} + +//ȴӦ +bit IIC_WaitAck(void) +{ + bit ackbit; + + SCL = 1; + IIC_Delay(DELAY_TIME); + ackbit = SDA; + SCL = 0; + IIC_Delay(DELAY_TIME); + return ackbit; +} + +//ͨI2C߷ +void IIC_SendByte(unsigned char byt) +{ + unsigned char i; + + for(i=0; i<8; i++) + { + SCL = 0; + IIC_Delay(DELAY_TIME); + if(byt & 0x80) SDA = 1; + else SDA = 0; + IIC_Delay(DELAY_TIME); + SCL = 1; + byt <<= 1; + IIC_Delay(DELAY_TIME); + } + SCL = 0; +} + +//I2CϽ +unsigned char IIC_RecByte(void) +{ + unsigned char i, da; + for(i=0; i<8; i++) + { + SCL = 1; + IIC_Delay(DELAY_TIME); + da <<= 1; + if(SDA) da |= 1; + SCL = 0; + IIC_Delay(DELAY_TIME); + } + return da; +} + + + + + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + IIC_Start(); + IIC_SendByte(0x90); + IIC_WaitAck(); + IIC_SendByte(addr); + IIC_WaitAck(); + IIC_Start(); + IIC_SendByte(0x91); + IIC_WaitAck(); + temp = IIC_RecByte(); + IIC_SendAck(1); + IIC_Stop(); + return temp; +} + +void Da_Write(unsigned char dat) +{ + IIC_Start(); + IIC_SendByte(0x90); + IIC_WaitAck(); + IIC_SendByte(0x41); + IIC_WaitAck(); + IIC_SendByte(dat); + IIC_WaitAck(); + IIC_Stop(); +} + + + +//дEEPROM +//ڲҪдַдĵַ(Ϊ8ı)д +//ֵ +//ܣEERPOMijַдַضַ +void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) +{ + IIC_Start();//Ϳź + IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + IIC_WaitAck();//ȴEEPROM + + IIC_SendByte(addr);//дҪ洢ݵַ + IIC_WaitAck();//ȴEEPROM + + while(num--) + { + IIC_SendByte(*EEPROM_String++);//ҪдϢд + IIC_WaitAck();//ȴEEPROM + IIC_Delay(200); + } + IIC_Stop();//ֹͣ +} + + +//EEPROM +//ڲҪ洢ַȡĵַ(Ϊ8ı)ȡ +//ֵ +//ܣȡEERPOMijַеݣַС +void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) +{ + IIC_Start();//Ϳź + IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + IIC_WaitAck();//ȴEEPROM + + IIC_SendByte(addr);//дҪȡݵַ + IIC_WaitAck();//ȴEEPROM + + IIC_Start();//Ϳź + IIC_SendByte(0xA1);//ѡEEPROMоƬȷģʽ + IIC_WaitAck();//ȴEEPROM + + while(num--) + { + *EEPROM_String++ = IIC_RecByte();//ҪдϢд + if(num) IIC_SendAck(0);//Ӧ + else IIC_SendAck(1);//Ӧ + } + + IIC_Stop();//ֹͣ +} \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/iic.h b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/iic.h new file mode 100644 index 0000000..f51a055 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/iic.h @@ -0,0 +1,23 @@ +# include "STC15F2K60S2.H" + + +void IIC_Start(void); +void IIC_Stop(void); +bit IIC_WaitAck(void); +void IIC_SendAck(bit ackbit); +void IIC_SendByte(unsigned char byt); +unsigned char IIC_RecByte(void); +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); +//函数名:写EEPROM函数 +//入口参数:需要写入的字符串,写入的地址(务必为8的倍数),写入数量 +//返回值:无 +//函数功能:向EERPOM的某个地址写入字符串中特定数量的字符。 +void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num); + + +//函数名:读EEPROM函数 +//入口参数:读到的数据需要存储的字符串,读取的地址(务必为8的倍数),读取的数量 +//返回值:无 +//函数功能:读取EERPOM的某个地址中的数据,并存放在字符串数组中。 +void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/onewire.c b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/onewire.c new file mode 100644 index 0000000..97d39c4 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/onewire.c @@ -0,0 +1,77 @@ +#include "onewire.h" +#include "reg52.h" + +sbit DQ = P1 ^ 4; + +// ڲʱ +void Delay_OneWire(unsigned int t) +{ + t *= 12; + while (t--) + ; +} + +// д +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; // һһд + } + Delay_OneWire(5); +} + +// ߶ +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + if (DQ) + { + dat |= 0x80; // һһȡ + } + Delay_OneWire(5); + } + return dat; +} + +// DS18B20ʼ +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); // ʼ + Write_DS18B20(0xcc); // ROM + Write_DS18B20(0x44); // ¶ת + init_ds18b20(); // ʼ + Write_DS18B20(0xcc); // ROM + Write_DS18B20(0xbe); // ȡ¶ + low = Read_DS18B20(); // λ + high = Read_DS18B20(); // λ + return ((high << 8) | low) / 16.0; +} \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/onewire.h b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/onewire.h new file mode 100644 index 0000000..8df55c8 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/onewire.h @@ -0,0 +1,5 @@ +#ifndef __ONEWIRE_H +#define __ONEWIRE_H + +float rd_temperature(void); +#endif diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ultrasound.c b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ultrasound.c new file mode 100644 index 0000000..448eb39 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ultrasound.c @@ -0,0 +1,48 @@ +#include +#include "intrins.h" + +sbit Tx = P1^0; +sbit Rx = P1^1; + +void Delay12us() //@12.000MHz +{ + unsigned char i; + + _nop_(); + _nop_(); + i = 38; + while (--i); +} + +void Ut_Wave_Init() //��������ʼ������ ����8��40Mhz�ķ����ź� +{ + unsigned char i; + for(i=0; i<8; i++) + { + Tx = 1; + Delay12us(); + Tx = 0; + Delay12us(); + } +} + +unsigned char Ut_Wave_Data() //超声波距离读取函数 +{ + unsigned int time;//时间储存变量 + CMOD = 0x00;//配置PCA工作模式 + CH = CL = 0;//复位计数值 等待超声波信号发出 + Ut_Wave_Init();//发送超声波信号 + CR = 1;//开始计时 + while((Rx == 1) && (CF == 0));//等待接受返回信号或者定时器溢出 + CR = 0;//停止计时 + if(CF == 0) //定时器没有溢出 + { + time = CH << 8 | CL;//读取当前时间 + return (time * 0.017);//返回距离值 + } + else + { + CF = 0;//清除溢出标志位 + return 0; + } +} diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ultrasound.h b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ultrasound.h new file mode 100644 index 0000000..1014dd8 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/Driver/ultrasound.h @@ -0,0 +1,3 @@ +#include + +unsigned char Ut_Wave_Data(); \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Init.lst b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Init.lst new file mode 100644 index 0000000..c83546a --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 02/03/2024 16:22:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Key.lst b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Key.lst new file mode 100644 index 0000000..fe1c7f0 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Key.lst @@ -0,0 +1,69 @@ +C51 COMPILER V9.59.0.0 KEY 02/03/2024 16:22:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include + 2 + 3 unsigned char Key_Read() + 4 { + 5 1 unsigned char temp = 0; + 6 1 //1 + 7 1 P44 = 0; + 8 1 P42 = 1; + 9 1 P35 = 1; + 10 1 P34 = 1; + 11 1 if(P33 == 0) temp = 4; + 12 1 if(P32 == 0) temp = 5; + 13 1 if(P31 == 0) temp = 6; + 14 1 if(P30 == 0) temp = 7; + 15 1 //2 + 16 1 P44 = 1; + 17 1 P42 = 0; + 18 1 P35 = 1; + 19 1 P34 = 1; + 20 1 if(P33 == 0) temp = 8; + 21 1 if(P32 == 0) temp = 9; + 22 1 if(P31 == 0) temp = 10; + 23 1 if(P30 == 0) temp = 11; + 24 1 //3 + 25 1 P44 = 1; + 26 1 P42 = 1; + 27 1 P35 = 0; + 28 1 P34 = 1; + 29 1 if(P33 == 0) temp = 12; + 30 1 if(P32 == 0) temp = 13; + 31 1 if(P31 == 0) temp = 14; + 32 1 if(P30 == 0) temp = 15; + 33 1 //4 + 34 1 P44 = 1; + 35 1 P42 = 1; + 36 1 P35 = 1; + 37 1 P34 = 0; + 38 1 if(P33 == 0) temp = 16; + 39 1 if(P32 == 0) temp = 17; + 40 1 if(P31 == 0) temp = 18; + 41 1 if(P30 == 0) temp = 19; + 42 1 return temp; + 43 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 115 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + C51 COMPILER V9.59.0.0 KEY 02/03/2024 16:22:49 PAGE 2 + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Led.lst b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Led.lst new file mode 100644 index 0000000..63f72ee --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Led.lst @@ -0,0 +1,82 @@ +C51 COMPILER V9.59.0.0 LED 02/03/2024 16:22:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include + 2 //ַ0-7Ƿʹ + 3 void Led_Disp(unsigned char addr,enable) + 4 { + 5 1 //ֵ֤Ϊı + 6 1 static unsigned char temp = 0x00; + 7 1 static unsigned char temp_old = 0xff; + 8 1 //ĵǰ״̬ + 9 1 if(enable) + 10 1 temp |= 0x01 << addr; + 11 1 else + 12 1 temp &= ~(0x01 << addr); + 13 1 //ǰ״̬֮ǰ״̬ͬвled + 14 1 if(temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 + 23 + 24 void Beep(unsigned char flag) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if(flag) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~0x40; + 32 1 if(temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 + 41 void Relay(unsigned char flag) + 42 { + 43 1 static unsigned char temp = 0x00; + 44 1 static unsigned char temp_old = 0xff; + 45 1 if(flag) + 46 1 temp |= 0x10; + 47 1 else + 48 1 temp &= ~0x10; + 49 1 if(temp != temp_old) + 50 1 { + 51 2 P0 = temp; + 52 2 P2 = P2 & 0x1f | 0xa0; + 53 2 P2 &= 0x1f; + 54 2 temp_old = temp; + C51 COMPILER V9.59.0.0 LED 02/03/2024 16:22:49 PAGE 2 + + 55 2 } + 56 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 129 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 6 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Seg.lst b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Seg.lst new file mode 100644 index 0000000..824419b --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Seg.lst @@ -0,0 +1,46 @@ +C51 COMPILER V9.59.0.0 SEG 02/03/2024 16:22:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 C P A + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0xc6, 0x8c, 0x88}; + 5 // λѡ 2^0,2^1,2^2,2^3,2^4,2^52^6,2^7һ˸ + 6 unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 + 8 void Seg_Disp(unsigned char wela, dula, point) + 9 { + 10 1 // ֶ + 11 1 P0 = 0xff; + 12 1 P2 = P2 & 0x1f | 0xe0; + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 P0 = seg_dula[dula]; + 18 1 if (point) + 19 1 P0 &= 0x7f; + 20 1 P2 = P2 & 0x1f | 0xe0; + 21 1 P2 &= 0x1f; + 22 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 55 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 22 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Uart.lst b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Uart.lst new file mode 100644 index 0000000..5bd7842 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/Uart.lst @@ -0,0 +1,60 @@ +C51 COMPILER V9.59.0.0 UART 01/30/2024 15:23:39 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include + 2 + 3 /* 串口初始化函数 */ + 4 void UartInit(void) //9600bps@12.000MHz + 5 { + 6 1 SCON = 0x50; //8位数据,可变波特率 + 7 1 AUXR |= 0x01; //串口1选择定时器2为波特率发生器 + 8 1 AUXR |= 0x04; //定时器时钟1T模式 + 9 1 T2L = 0xC7; //设置定时初始值 + 10 1 T2H = 0xFE; //设置定时初始值 + 11 1 AUXR |= 0x10; //定时器2开始计时 + 12 1 ES = 1; + 13 1 EA = 1; + 14 1 } + 15 + 16 /* putchar重定向 */ + 17 extern char putchar(char ch) + 18 { + 19 1 SBUF= ch;//将dat数据赋给SBUF,将数据发送出去 + 20 1 while(TI == 0);//等待数据发送 + 21 1 TI = 0;//将发送标志位清零 + 22 1 return (ch); + 23 1 } + 24 void SendByte(unsigned char dat) + 25 { + 26 1 SBUF = dat; + 27 1 while (TI == 0) // 等待发送 + 28 1 ; + 29 1 TI = 0; // 将发送标志清零,准备下一次发送 + 30 1 } + 31 + 32 void Uart_Sent_String(unsigned char *dat) + 33 { + 34 1 while (*dat != "\0") + 35 1 SendByte(*dat++); + 36 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 82 ---- + CONSTANT SIZE = 2 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 3 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/ds1302.lst b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/ds1302.lst new file mode 100644 index 0000000..0ccbe57 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/ds1302.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 DS1302 02/03/2024 16:22:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 #include "ds1302.h" + 2 #include + 3 #include + 4 + 5 sbit SCK = P1 ^ 7; + 6 sbit SDA = P2 ^ 3; + 7 sbit RST = P1 ^ 3; + 8 + 9 // дֽ + 10 void Write_Ds1302(unsigned char temp) + 11 { + 12 1 unsigned char i; + 13 1 for (i = 0; i < 8; i++) + 14 1 { + 15 2 SCK = 0; + 16 2 SDA = temp & 0x01; + 17 2 temp >>= 1; // һλһλд + 18 2 SCK = 1; + 19 2 } + 20 1 } + 21 + 22 // DS1302Ĵд + 23 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 24 { + 25 1 RST = 0; + 26 1 _nop_(); + 27 1 SCK = 0; + 28 1 _nop_(); + 29 1 RST = 1; + 30 1 _nop_(); + 31 1 Write_Ds1302(address); + 32 1 Write_Ds1302(dat); + 33 1 RST = 0; + 34 1 } + 35 + 36 // DS1302Ĵ + 37 unsigned char Read_Ds1302_Byte(unsigned char address) + 38 { + 39 1 unsigned char i, temp = 0x00; + 40 1 RST = 0; + 41 1 _nop_(); + 42 1 SCK = 0; + 43 1 _nop_(); + 44 1 RST = 1; + 45 1 _nop_(); + 46 1 Write_Ds1302(address); + 47 1 for (i = 0; i < 8; i++) + 48 1 { + 49 2 SCK = 0; + 50 2 temp >>= 1; + 51 2 if (SDA) + 52 2 temp |= 0x80; + 53 2 SCK = 1; + 54 2 } + C51 COMPILER V9.59.0.0 DS1302 02/03/2024 16:22:49 PAGE 2 + + 55 1 RST = 0; + 56 1 _nop_(); + 57 1 SCK = 0; + 58 1 _nop_(); + 59 1 SCK = 1; + 60 1 _nop_(); + 61 1 SDA = 0; + 62 1 _nop_(); + 63 1 SDA = 1; + 64 1 _nop_(); + 65 1 return (temp); + 66 1 } + 67 + 68 void Set_Rtc(unsigned char *ucRtc) + 69 { + 70 1 unsigned char i; + 71 1 Write_Ds1302_Byte(0x8e, 0x00); + 72 1 for (i = 0; i < 3; i++) + 73 1 { + 74 2 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 75 2 } + 76 1 Write_Ds1302_Byte(0x8e, 0x80); + 77 1 } + 78 + 79 void Read_Rtc(unsigned char *ucRtc) + 80 { + 81 1 unsigned char i; + 82 1 for (i = 0; i < 3; i++) + 83 1 { + 84 2 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 85 2 } + 86 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/iic.lst b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/iic.lst new file mode 100644 index 0000000..40be0f0 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/iic.lst @@ -0,0 +1,226 @@ +C51 COMPILER V9.59.0.0 IIC 02/03/2024 16:22:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* + 2 ˵: IIC + 3 : Keil uVision 4.10 + 4 Ӳ: CT107Ƭۺʵѵƽ̨ 805112MHz + 5 : 2011-8-9 + 6 */ + 7 + 8 #include "iic.h" + 9 + 10 + 11 #include "intrins.h" + 12 + 13 #define DELAY_TIME 5 + 14 + 15 #define Photo_Res_Channel 0x41 + 16 #define Adj_Res_Channel 0x43 + 17 + 18 + 19 //Ŷ + 20 sbit SDA = P2^1; /* */ + 21 sbit SCL = P2^0; /* ʱ */ + 22 + 23 void IIC_Delay(unsigned char i) + 24 { + 25 1 do { + 26 2 _nop_(); + 27 2 } + 28 1 while(i--); + 29 1 } + 30 + 31 // + 32 void IIC_Start(void) + 33 { + 34 1 SDA = 1; + 35 1 SCL = 1; + 36 1 IIC_Delay(DELAY_TIME); + 37 1 SDA = 0; + 38 1 IIC_Delay(DELAY_TIME); + 39 1 SCL = 0; + 40 1 } + 41 + 42 //ֹͣ + 43 void IIC_Stop(void) + 44 { + 45 1 SDA = 0; + 46 1 SCL = 1; + 47 1 IIC_Delay(DELAY_TIME); + 48 1 SDA = 1; + 49 1 IIC_Delay(DELAY_TIME); + 50 1 } + 51 + 52 //Ӧ + 53 void IIC_SendAck(bit ackbit) + 54 { + C51 COMPILER V9.59.0.0 IIC 02/03/2024 16:22:49 PAGE 2 + + 55 1 SCL = 0; + 56 1 SDA = ackbit; // 0Ӧ1Ӧ + 57 1 IIC_Delay(DELAY_TIME); + 58 1 SCL = 1; + 59 1 IIC_Delay(DELAY_TIME); + 60 1 SCL = 0; + 61 1 SDA = 1; + 62 1 IIC_Delay(DELAY_TIME); + 63 1 } + 64 + 65 //ȴӦ + 66 bit IIC_WaitAck(void) + 67 { + 68 1 bit ackbit; + 69 1 + 70 1 SCL = 1; + 71 1 IIC_Delay(DELAY_TIME); + 72 1 ackbit = SDA; + 73 1 SCL = 0; + 74 1 IIC_Delay(DELAY_TIME); + 75 1 return ackbit; + 76 1 } + 77 + 78 //ͨI2C߷ + 79 void IIC_SendByte(unsigned char byt) + 80 { + 81 1 unsigned char i; + 82 1 + 83 1 for(i=0; i<8; i++) + 84 1 { + 85 2 SCL = 0; + 86 2 IIC_Delay(DELAY_TIME); + 87 2 if(byt & 0x80) SDA = 1; + 88 2 else SDA = 0; + 89 2 IIC_Delay(DELAY_TIME); + 90 2 SCL = 1; + 91 2 byt <<= 1; + 92 2 IIC_Delay(DELAY_TIME); + 93 2 } + 94 1 SCL = 0; + 95 1 } + 96 + 97 //I2CϽ + 98 unsigned char IIC_RecByte(void) + 99 { + 100 1 unsigned char i, da; + 101 1 for(i=0; i<8; i++) + 102 1 { + 103 2 SCL = 1; + 104 2 IIC_Delay(DELAY_TIME); + 105 2 da <<= 1; + 106 2 if(SDA) da |= 1; + 107 2 SCL = 0; + 108 2 IIC_Delay(DELAY_TIME); + 109 2 } + 110 1 return da; + 111 1 } + 112 + 113 + 114 + 115 + 116 + C51 COMPILER V9.59.0.0 IIC 02/03/2024 16:22:49 PAGE 3 + + 117 unsigned char Ad_Read(unsigned char addr) + 118 { + 119 1 unsigned char temp; + 120 1 IIC_Start(); + 121 1 IIC_SendByte(0x90); + 122 1 IIC_WaitAck(); + 123 1 IIC_SendByte(addr); + 124 1 IIC_WaitAck(); + 125 1 IIC_Start(); + 126 1 IIC_SendByte(0x91); + 127 1 IIC_WaitAck(); + 128 1 temp = IIC_RecByte(); + 129 1 IIC_SendAck(1); + 130 1 IIC_Stop(); + 131 1 return temp; + 132 1 } + 133 + 134 void Da_Write(unsigned char dat) + 135 { + 136 1 IIC_Start(); + 137 1 IIC_SendByte(0x90); + 138 1 IIC_WaitAck(); + 139 1 IIC_SendByte(0x41); + 140 1 IIC_WaitAck(); + 141 1 IIC_SendByte(dat); + 142 1 IIC_WaitAck(); + 143 1 IIC_Stop(); + 144 1 } + 145 + 146 + 147 + 148 //дEEPROM + 149 //ڲҪдַдĵַ(Ϊ8ı)д + 150 //ֵ + 151 //ܣEERPOMijַдַضַ + 152 void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) + 153 { + 154 1 IIC_Start();//Ϳź + 155 1 IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + 156 1 IIC_WaitAck();//ȴEEPROM + 157 1 + 158 1 IIC_SendByte(addr);//дҪ洢ݵַ + 159 1 IIC_WaitAck();//ȴEEPROM + 160 1 + 161 1 while(num--) + 162 1 { + 163 2 IIC_SendByte(*EEPROM_String++);//ҪдϢд + 164 2 IIC_WaitAck();//ȴEEPROM + 165 2 IIC_Delay(200); + 166 2 } + 167 1 IIC_Stop();//ֹͣ + 168 1 } + 169 + 170 + 171 //EEPROM + 172 //ڲҪ洢ַȡĵַ(Ϊ8ı)ȡ + 173 //ֵ + 174 //ܣȡEERPOMijַеݣַС + 175 void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) + 176 { + 177 1 IIC_Start();//Ϳź + 178 1 IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + C51 COMPILER V9.59.0.0 IIC 02/03/2024 16:22:49 PAGE 4 + + 179 1 IIC_WaitAck();//ȴEEPROM + 180 1 + 181 1 IIC_SendByte(addr);//дҪȡݵַ + 182 1 IIC_WaitAck();//ȴEEPROM + 183 1 + 184 1 IIC_Start();//Ϳź + 185 1 IIC_SendByte(0xA1);//ѡEEPROMоƬȷģʽ + 186 1 IIC_WaitAck();//ȴEEPROM + 187 1 + 188 1 while(num--) + 189 1 { + 190 2 *EEPROM_String++ = IIC_RecByte();//ҪдϢд + 191 2 if(num) IIC_SendAck(0);//Ӧ + 192 2 else IIC_SendAck(1);//Ӧ + 193 2 } + 194 1 + 195 1 IIC_Stop();//ֹͣ + 196 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 385 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- 2 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/main.lst b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/main.lst new file mode 100644 index 0000000..8da0fc0 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/main.lst @@ -0,0 +1,206 @@ +C51 COMPILER V9.59.0.0 MAIN 02/03/2024 16:22:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* */ + 3 uchar Key_Slow_Down; // רñ + 4 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾݴ + 5 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Сݴ + 6 uchar Seg_Pos; // ɨרñ + 7 uint Seg_Slow_Down; // ܼרñ + 8 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Ledʾݴ + 9 + 10 uchar Seg_show_mode; // 0¶ȣ12DAC + 11 float temperature_value; + 12 uchar temperature_demo = 25; + 13 uchar DAC_out_digit; + 14 bit DAC_flag; // 0Ϊ 1Ϊ¶ȹϵ + 15 void init_Seg() + 16 { + 17 1 uchar i; + 18 1 for (i = 0; i < 8; i++) + 19 1 { + 20 2 Seg_Buf[i] = 10; + 21 2 Seg_Point[i] = 0; + 22 2 } + 23 1 } + 24 + 25 /* ̴ */ + 26 void Key_Proc() + 27 { + 28 1 static uchar Key_Val, Key_Down, Key_Old, Key_Up; // רñ + 29 1 if (Key_Slow_Down) + 30 1 return; + 31 1 Key_Slow_Down = 1; // ̼ٳ + 32 1 + 33 1 Key_Val = Key_Read(); // ʵʱȡֵ + 34 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); // ׽½ + 35 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); // ׽Ͻ + 36 1 Key_Old = Key_Val; // ɨ + 37 1 switch (Key_Down) + 38 1 { + 39 2 case 4: + 40 2 init_Seg(); + 41 2 Seg_show_mode = (++Seg_show_mode) % 3; + 42 2 break; + 43 2 case 8: + 44 2 if (Seg_show_mode == 1) + 45 2 temperature_demo = (--temperature_demo < 0) ? 0 : temperature_demo; + 46 2 break; + 47 2 case 9: + 48 2 if (Seg_show_mode == 1) + 49 2 temperature_demo = (++temperature_demo > 99) ? 99 : temperature_demo; + 50 2 break; + 51 2 case 5: + 52 2 DAC_flag ^= 1; + 53 2 break; + 54 2 } + C51 COMPILER V9.59.0.0 MAIN 02/03/2024 16:22:49 PAGE 2 + + 55 1 } + 56 + 57 /* Ϣ */ + 58 void Seg_Proc() + 59 { + 60 1 uint temp_temperature; + 61 1 uint DAC_out_analog_x100; + 62 1 if (Seg_Slow_Down) + 63 1 return; + 64 1 Seg_Slow_Down = 1; // ܼٳ + 65 1 temperature_value = rd_temperature(); + 66 1 temp_temperature = temperature_value * 100; + 67 1 if (DAC_flag) + 68 1 { + 69 2 if (temperature_value >= 40) + 70 2 DAC_out_digit = 204; // 4*255/5 + 71 2 else if (temperature_value <= 20) + 72 2 DAC_out_digit = 51; // 1*255/5 + 73 2 else + 74 2 DAC_out_digit = ((temperature_value - 20) * 3.0 / 20.0 + 1.0) * 51; + 75 2 } + 76 1 DAC_out_analog_x100 = DAC_out_digit / 51.0 * 100; + 77 1 switch (Seg_show_mode) + 78 1 { + 79 2 case 0: + 80 2 /* ¶Ƚ */ + 81 2 Seg_Buf[0] = 11; // C + 82 2 Seg_Buf[4] = temp_temperature / 1000 % 10; + 83 2 Seg_Buf[5] = temp_temperature / 100 % 10; + 84 2 Seg_Buf[6] = temp_temperature / 10 % 10; + 85 2 Seg_Buf[7] = temp_temperature % 10; + 86 2 Seg_Point[5] = 1; + 87 2 break; + 88 2 case 1: + 89 2 /**/ + 90 2 Seg_Buf[0] = 12; // P + 91 2 Seg_Buf[6] = temperature_demo / 10 % 10; + 92 2 Seg_Buf[7] = temperature_demo % 10; + 93 2 break; + 94 2 case 2: + 95 2 /*DAC*/ + 96 2 Seg_Buf[0] = 13; // A + 97 2 Seg_Buf[5] = DAC_out_analog_x100 / 100 % 10; + 98 2 Seg_Buf[6] = DAC_out_analog_x100 / 10 % 10; + 99 2 Seg_Buf[7] = DAC_out_analog_x100 % 10; + 100 2 Seg_Point[5] = 1; + 101 2 break; + 102 2 } + 103 1 } + 104 + 105 /* ʾ */ + 106 void Led_Proc() + 107 { + 108 1 Da_Write(DAC_out_digit); + 109 1 ucLed[0] = !DAC_flag; + 110 1 ucLed[1] = (Seg_show_mode == 0); + 111 1 ucLed[2] = (Seg_show_mode == 1); + 112 1 ucLed[3] = (Seg_show_mode == 2); + 113 1 } + 114 + 115 /* ʱ0жϳʼ */ + 116 void Timer0Init(void) // 1@12.000MHz + C51 COMPILER V9.59.0.0 MAIN 02/03/2024 16:22:49 PAGE 3 + + 117 { + 118 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 119 1 TMOD &= 0xF0; // öʱģʽ + 120 1 TL0 = 0x18; // öʱʼֵ + 121 1 TH0 = 0xFC; // öʱʼֵ + 122 1 TF0 = 0; // TF0־ + 123 1 TR0 = 1; // ʱ0ʼʱ + 124 1 ET0 = 1; // ʱж0 + 125 1 EA = 1; // жϴ + 126 1 } + 127 + 128 /* ʱ0жϷ */ + 129 void Timer0Server() interrupt 1 + 130 { + 131 1 if (++Key_Slow_Down == 10) + 132 1 Key_Slow_Down = 0; // ̼ר + 133 1 if (++Seg_Slow_Down == 500) + 134 1 Seg_Slow_Down = 0; // ܼר + 135 1 if (++Seg_Pos == 8) + 136 1 Seg_Pos = 0; // ʾר + 137 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 138 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 139 1 } + 140 + 141 void Delay750ms() //@12MHz + 142 { + 143 1 unsigned char i, j, k; + 144 1 + 145 1 _nop_(); + 146 1 _nop_(); + 147 1 i = 35; + 148 1 j = 51; + 149 1 k = 182; + 150 1 do + 151 1 { + 152 2 do + 153 2 { + 154 3 while (--k) + 155 3 ; + 156 3 } while (--j); + 157 2 } while (--i); + 158 1 } + 159 + 160 /* Main */ + 161 void main() + 162 { + 163 1 // ¶ȶȡĻ + 164 1 rd_temperature(); + 165 1 Delay750ms(); + 166 1 + 167 1 System_Init(); + 168 1 Timer0Init(); + 169 1 + 170 1 while (1) + 171 1 { + 172 2 Key_Proc(); + 173 2 Seg_Proc(); + 174 2 Led_Proc(); + 175 2 } + 176 1 } + + + C51 COMPILER V9.59.0.0 MAIN 02/03/2024 16:22:49 PAGE 4 + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 774 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 39 2 + IDATA SIZE = ---- ---- + BIT SIZE = 1 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/onewire.lst b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/onewire.lst new file mode 100644 index 0000000..5274151 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/onewire.lst @@ -0,0 +1,103 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/03/2024 16:22:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 #include "onewire.h" + 2 #include "reg52.h" + 3 + 4 sbit DQ = P1 ^ 4; + 5 + 6 // ڲʱ + 7 void Delay_OneWire(unsigned int t) + 8 { + 9 1 t *= 12; + 10 1 while (t--) + 11 1 ; + 12 1 } + 13 + 14 // д + 15 void Write_DS18B20(unsigned char dat) + 16 { + 17 1 unsigned char i; + 18 1 for (i = 0; i < 8; i++) + 19 1 { + 20 2 DQ = 0; + 21 2 DQ = dat & 0x01; + 22 2 Delay_OneWire(5); + 23 2 DQ = 1; + 24 2 dat >>= 1; // һһд + 25 2 } + 26 1 Delay_OneWire(5); + 27 1 } + 28 + 29 // ߶ + 30 unsigned char Read_DS18B20(void) + 31 { + 32 1 unsigned char i; + 33 1 unsigned char dat; + 34 1 + 35 1 for (i = 0; i < 8; i++) + 36 1 { + 37 2 DQ = 0; + 38 2 dat >>= 1; + 39 2 DQ = 1; + 40 2 if (DQ) + 41 2 { + 42 3 dat |= 0x80; // һһȡ + 43 3 } + 44 2 Delay_OneWire(5); + 45 2 } + 46 1 return dat; + 47 1 } + 48 + 49 // DS18B20ʼ + 50 bit init_ds18b20(void) + 51 { + 52 1 bit initflag = 0; + 53 1 + 54 1 DQ = 1; + C51 COMPILER V9.59.0.0 ONEWIRE 02/03/2024 16:22:49 PAGE 2 + + 55 1 Delay_OneWire(12); + 56 1 DQ = 0; + 57 1 Delay_OneWire(80); + 58 1 DQ = 1; + 59 1 Delay_OneWire(10); + 60 1 initflag = DQ; + 61 1 Delay_OneWire(5); + 62 1 + 63 1 return initflag; + 64 1 } + 65 float rd_temperature() + 66 { + 67 1 unsigned char low, high; + 68 1 init_ds18b20(); // ʼ + 69 1 Write_DS18B20(0xcc); // ROM + 70 1 Write_DS18B20(0x44); // ¶ת + 71 1 init_ds18b20(); // ʼ + 72 1 Write_DS18B20(0xcc); // ROM + 73 1 Write_DS18B20(0xbe); // ȡ¶ + 74 1 low = Read_DS18B20(); // λ + 75 1 high = Read_DS18B20(); // λ + 76 1 return ((high << 8) | low) / 16.0; + 77 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 187 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/ultrasound.lst b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/ultrasound.lst new file mode 100644 index 0000000..518ed4c --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/ultrasound.lst @@ -0,0 +1,75 @@ +C51 COMPILER V9.59.0.0 ULTRASOUND 02/03/2024 16:22:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASOUND +OBJECT MODULE PLACED IN .\Objects\ultrasound.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ultrasound.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\ultrasound.lst) TABS(2) OBJECT(.\Objects\ultrasound.obj) + +line level source + + 1 #include + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1^0; + 5 sbit Rx = P1^1; + 6 + 7 void Delay12us() //@12.000MHz + 8 { + 9 1 unsigned char i; + 10 1 + 11 1 _nop_(); + 12 1 _nop_(); + 13 1 i = 38; + 14 1 while (--i); + 15 1 } + 16 + 17 void Ut_Wave_Init() //��������ʼ������ ����8��40Mhz�ķ��� + -ź� + 18 { + 19 1 unsigned char i; + 20 1 for(i=0; i<8; i++) + 21 1 { + 22 2 Tx = 1; + 23 2 Delay12us(); + 24 2 Tx = 0; + 25 2 Delay12us(); + 26 2 } + 27 1 } + 28 + 29 unsigned char Ut_Wave_Data() //超声波距离读取函数 + 30 { + 31 1 unsigned int time;//时间储存变量 + 32 1 CMOD = 0x00;//配置PCA工作模式 + 33 1 CH = CL = 0;//复位计数值 等待超声波信号发出 + 34 1 Ut_Wave_Init();//发送超声波信号 + 35 1 CR = 1;//开始计时 + 36 1 while((Rx == 1) && (CF == 0));//等待接受返回信号或者定时器溢出 + 37 1 CR = 0;//停止计时 + 38 1 if(CF == 0) //定时器没有溢出 + 39 1 { + 40 2 time = CH << 8 | CL;//读取当前时间 + 41 2 return (time * 0.017);//返回距离值 + 42 2 } + 43 1 else + 44 1 { + 45 2 CF = 0;//清除溢出标志位 + 46 2 return 0; + 47 2 } + 48 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 89 ---- + CONSTANT SIZE = ---- ---- + C51 COMPILER V9.59.0.0 ULTRASOUND 02/03/2024 16:22:49 PAGE 2 + + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/zuolan.m51 b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/zuolan.m51 new file mode 100644 index 0000000..d442866 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Listings/zuolan.m51 @@ -0,0 +1,1267 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\ds1302.obj, .\Objects\iic.obj, .\Objects\onewire.obj, .\Objects\ultrasound.obj TO .\Objects\zuolan PRI +>> NT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\ds1302.obj (DS1302) + .\Objects\iic.obj (IIC) + .\Objects\onewire.obj (ONEWIRE) + .\Objects\ultrasound.obj (ULTRASOUND) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPCMP) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?IMUL) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0016H UNIT ?DT?SEG + DATA 001EH 0002H UNIT _DATA_GROUP_ + BIT 0020H.0 0000H.1 UNIT ?BI?MAIN + BIT 0020H.1 0000H.1 UNIT ?BI?IIC_SENDACK?IIC + BIT 0020H.2 0000H.1 UNIT _BIT_GROUP_ + 0020H.3 0000H.5 *** GAP *** + DATA 0021H 0027H UNIT ?DT?MAIN + DATA 0048H 0006H UNIT ?DT?LED + DATA 004EH 0005H UNIT ?DT?_EEPROM_WRITE?IIC + DATA 0053H 0005H UNIT ?DT?_EEPROM_READ?IIC + DATA 0058H 0003H UNIT ?DT?_SET_RTC?DS1302 + DATA 005BH 0003H UNIT ?DT?_READ_RTC?DS1302 + IDATA 005EH 0001H UNIT ?STACK + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 2 + + + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0007H UNIT ?PR?DELAY12US?ULTRASOUND + 000AH 0001H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 04C5H UNIT ?C?LIB_CODE + CODE 04D3H 0173H UNIT ?PR?SEG_PROC?MAIN + CODE 0646H 008CH UNIT ?C_C51STARTUP + CODE 06D2H 0088H UNIT ?PR?TIMER0SERVER?MAIN + CODE 075AH 0078H UNIT ?PR?KEY_PROC?MAIN + CODE 07D2H 0073H UNIT ?PR?KEY_READ?KEY + CODE 0845H 004EH UNIT ?C_INITSEG + CODE 0893H 004DH UNIT ?PR?_EEPROM_READ?IIC + CODE 08E0H 003EH UNIT ?PR?_SET_RTC?DS1302 + CODE 091EH 003DH UNIT ?PR?_READ_DS1302_BYTE?DS1302 + CODE 095BH 003DH UNIT ?PR?_EEPROM_WRITE?IIC + CODE 0998H 003CH UNIT ?PR?LED_PROC?MAIN + CODE 09D4H 003CH UNIT ?PR?_IIC_SENDBYTE?IIC + CODE 0A10H 003BH UNIT ?PR?_LED_DISP?LED + CODE 0A4BH 0038H UNIT ?PR?UT_WAVE_DATA?ULTRASOUND + CODE 0A83H 0037H UNIT ?PR?_SEG_DISP?SEG + CODE 0ABAH 0034H UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 0AEEH 0031H UNIT ?PR?_READ_RTC?DS1302 + CODE 0B1FH 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 0B46H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 0B6DH 0026H UNIT ?PR?IIC_RECBYTE?IIC + CODE 0B93H 0026H UNIT ?PR?_AD_READ?IIC + CODE 0BB9H 0023H UNIT ?PR?_BEEP?LED + CODE 0BDCH 0023H UNIT ?PR?_RELAY?LED + CODE 0BFFH 0023H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0C22H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0C3FH 001CH UNIT ?PR?INIT_SEG?MAIN + CODE 0C5BH 001CH UNIT ?PR?_WRITE_DS1302?DS1302 + CODE 0C77H 001BH UNIT ?PR?IIC_WAITACK?IIC + CODE 0C92H 001AH UNIT ?PR?UT_WAVE_INIT?ULTRASOUND + CODE 0CACH 0017H UNIT ?PR?MAIN?MAIN + CODE 0CC3H 0017H UNIT ?PR?IIC_SENDACK?IIC + CODE 0CDAH 0016H UNIT ?PR?_DA_WRITE?IIC + CODE 0CF0H 0016H UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 0D06H 0015H UNIT ?PR?TIMER0INIT?MAIN + CODE 0D1BH 0014H UNIT ?PR?_WRITE_DS1302_BYTE?DS1302 + CODE 0D2FH 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 0D3EH 000FH UNIT ?PR?IIC_START?IIC + CODE 0D4DH 000CH UNIT ?PR?_IIC_DELAY?IIC + CODE 0D59H 000CH UNIT ?PR?IIC_STOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------------- +?PR?TIMER0SERVER?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 3 + + + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0INIT?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.2 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +--> ?PR?INIT_SEG?MAIN + +?PR?SEG_PROC?MAIN ----- ----- 001EH 0002H + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +?PR?LED_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_DA_WRITE?IIC + +?PR?_DA_WRITE?IIC ----- ----- ----- ----- + +--> ?PR?IIC_WAITACK?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?IIC_STOP?IIC + +?PR?IIC_WAITACK?IIC 0020H.2 0000H.1 ----- ----- + +--> ?PR?IIC_START?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_START?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?_IIC_SENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?IIC_START?IIC + +--> ?PR?_IIC_DELAY?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 4 + + + +?PR?IIC_STOP?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0998H PUBLIC Led_Proc + D:0025H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:04D3H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:002DH PUBLIC Seg_Buf + C:075AH PUBLIC Key_Proc + D:0035H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:0CACH PUBLIC main + D:0037H PUBLIC Key_Slow_Down + C:06D2H PUBLIC Timer0Server + D:0038H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + C:0C3FH PUBLIC init_Seg + D:0039H PUBLIC temperature_value + D:003DH PUBLIC temperature_demo + D:008EH PUBLIC AUXR + B:0020H.0 PUBLIC DAC_flag + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + C:0D06H PUBLIC Timer0Init + D:003EH PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + D:003FH PUBLIC ucLed + C:0D2FH PUBLIC Delay750ms + D:0047H PUBLIC DAC_out_digit + D:00D0H PUBLIC PSW + ------- PROC INIT_SEG + ------- DO + D:0007H SYMBOL i + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 5 + + + ------- ENDDO + C:0C3FH LINE# 15 + C:0C3FH LINE# 16 + C:0C3FH LINE# 18 + C:0C4BH LINE# 19 + C:0C4BH LINE# 20 + C:0C51H LINE# 21 + C:0C57H LINE# 22 + C:0C5AH LINE# 23 + ------- ENDPROC INIT_SEG + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Old + D:0024H SYMBOL Key_Up + ------- ENDDO + C:075AH LINE# 26 + C:075AH LINE# 27 + C:075AH LINE# 29 + C:075EH LINE# 31 + C:0761H LINE# 33 + C:0766H LINE# 34 + C:076FH LINE# 35 + C:0775H LINE# 36 + C:0778H LINE# 37 + C:0789H LINE# 38 + C:0789H LINE# 39 + C:0789H LINE# 40 + C:078CH LINE# 41 + C:0797H LINE# 42 + C:0798H LINE# 43 + C:0798H LINE# 44 + C:079EH LINE# 45 + C:07AFH LINE# 46 + C:07B0H LINE# 47 + C:07B0H LINE# 48 + C:07B6H LINE# 49 + C:07CBH LINE# 50 + C:07CCH LINE# 51 + C:07CCH LINE# 52 + C:07D1H LINE# 53 + C:07D1H LINE# 54 + C:07D1H LINE# 55 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:001EH SYMBOL temp_temperature + D:0002H SYMBOL DAC_out_analog_x100 + ------- ENDDO + C:04D3H LINE# 58 + C:04D3H LINE# 59 + C:04D3H LINE# 62 + C:04DCH LINE# 64 + C:04E1H LINE# 65 + C:04ECH LINE# 66 + C:0505H LINE# 67 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 6 + + + C:0508H LINE# 68 + C:0508H LINE# 69 + C:051CH LINE# 70 + C:0521H LINE# 71 + C:0537H LINE# 72 + C:053CH LINE# 74 + C:057BH LINE# 75 + C:057BH LINE# 76 + C:059CH LINE# 77 + C:05ABH LINE# 78 + C:05ABH LINE# 79 + C:05ABH LINE# 81 + C:05AEH LINE# 82 + C:05C2H LINE# 83 + C:05D6H LINE# 84 + C:05EAH LINE# 85 + C:05EEH LINE# 86 + C:05EEH LINE# 87 + C:05F0H LINE# 88 + C:05F0H LINE# 90 + C:05F3H LINE# 91 + C:0600H LINE# 92 + C:0609H LINE# 93 + C:060AH LINE# 94 + C:060AH LINE# 96 + C:060DH LINE# 97 + C:0621H LINE# 98 + C:0635H LINE# 99 + C:0642H LINE# 100 + C:0645H LINE# 101 + C:0645H LINE# 102 + C:0645H LINE# 103 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0998H LINE# 106 + C:0998H LINE# 107 + C:0998H LINE# 108 + C:099DH LINE# 109 + C:09A8H LINE# 110 + C:09B7H LINE# 111 + C:09C5H LINE# 112 + C:09D3H LINE# 113 + ------- ENDPROC LED_PROC + ------- PROC TIMER0INIT + C:0D06H LINE# 116 + C:0D06H LINE# 117 + C:0D06H LINE# 118 + C:0D09H LINE# 119 + C:0D0CH LINE# 120 + C:0D0FH LINE# 121 + C:0D12H LINE# 122 + C:0D14H LINE# 123 + C:0D16H LINE# 124 + C:0D18H LINE# 125 + C:0D1AH LINE# 126 + ------- ENDPROC TIMER0INIT + ------- PROC TIMER0SERVER + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 7 + + + C:06D2H LINE# 129 + C:06EFH LINE# 131 + C:06F7H LINE# 132 + C:06F9H LINE# 133 + C:070AH LINE# 134 + C:0710H LINE# 135 + C:0718H LINE# 136 + C:071AH LINE# 137 + C:0731H LINE# 138 + C:073FH LINE# 139 + ------- ENDPROC TIMER0SERVER + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0D2FH LINE# 141 + C:0D2FH LINE# 142 + C:0D2FH LINE# 145 + C:0D30H LINE# 146 + C:0D31H LINE# 147 + C:0D33H LINE# 148 + C:0D35H LINE# 149 + C:0D37H LINE# 151 + C:0D37H LINE# 153 + C:0D37H LINE# 154 + C:0D39H LINE# 156 + C:0D3BH LINE# 157 + C:0D3DH LINE# 158 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:0CACH LINE# 161 + C:0CACH LINE# 162 + C:0CACH LINE# 164 + C:0CAFH LINE# 165 + C:0CB2H LINE# 167 + C:0CB5H LINE# 168 + C:0CB8H LINE# 170 + C:0CB8H LINE# 171 + C:0CB8H LINE# 172 + C:0CBBH LINE# 173 + C:0CBEH LINE# 174 + C:0CC1H LINE# 175 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:0BDCH PUBLIC _Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 8 + + + D:00F8H PUBLIC P7 + C:0A10H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:0BB9H PUBLIC _Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0004H SYMBOL enable + ------- DO + D:0048H SYMBOL temp + D:0049H SYMBOL temp_old + ------- ENDDO + C:0A10H LINE# 3 + C:0A10H LINE# 4 + C:0A10H LINE# 9 + C:0A14H LINE# 10 + C:0A23H LINE# 12 + C:0A31H LINE# 14 + C:0A37H LINE# 15 + C:0A37H LINE# 16 + C:0A3CH LINE# 17 + C:0A44H LINE# 18 + C:0A47H LINE# 19 + C:0A4AH LINE# 20 + C:0A4AH LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC _BEEP + D:0007H SYMBOL flag + ------- DO + D:004AH SYMBOL temp + D:004BH SYMBOL temp_old + ------- ENDDO + C:0BB9H LINE# 24 + C:0BB9H LINE# 25 + C:0BB9H LINE# 28 + C:0BBCH LINE# 29 + C:0BC1H LINE# 31 + C:0BC4H LINE# 32 + C:0BCAH LINE# 33 + C:0BCAH LINE# 34 + C:0BCDH LINE# 35 + C:0BD5H LINE# 36 + C:0BD8H LINE# 37 + C:0BDBH LINE# 38 + C:0BDBH LINE# 39 + ------- ENDPROC _BEEP + ------- PROC _RELAY + D:0007H SYMBOL flag + ------- DO + D:004CH SYMBOL temp + D:004DH SYMBOL temp_old + ------- ENDDO + C:0BDCH LINE# 41 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 9 + + + C:0BDCH LINE# 42 + C:0BDCH LINE# 45 + C:0BDFH LINE# 46 + C:0BE4H LINE# 48 + C:0BE7H LINE# 49 + C:0BEDH LINE# 50 + C:0BEDH LINE# 51 + C:0BF0H LINE# 52 + C:0BF8H LINE# 53 + C:0BFBH LINE# 54 + C:0BFEH LINE# 55 + C:0BFEH LINE# 56 + ------- ENDPROC _RELAY + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0A83H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0016H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0004H SYMBOL dula + D:0002H SYMBOL point + C:0A83H LINE# 8 + C:0A83H LINE# 9 + C:0A83H LINE# 11 + C:0A86H LINE# 12 + C:0A8EH LINE# 13 + C:0A95H LINE# 14 + C:0A9DH LINE# 15 + C:0AA0H LINE# 17 + C:0AA7H LINE# 18 + C:0AABH LINE# 19 + C:0AAEH LINE# 20 + C:0AB6H LINE# 21 + C:0AB9H LINE# 22 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 10 + + + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:07D2H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:07D2H LINE# 3 + C:07D2H LINE# 4 + C:07D2H LINE# 5 + C:07D4H LINE# 7 + C:07D6H LINE# 8 + C:07D8H LINE# 9 + C:07DAH LINE# 10 + C:07DCH LINE# 11 + C:07E1H LINE# 12 + C:07E6H LINE# 13 + C:07EBH LINE# 14 + C:07F0H LINE# 16 + C:07F2H LINE# 17 + C:07F4H LINE# 18 + C:07F6H LINE# 19 + C:07F8H LINE# 20 + C:07FDH LINE# 21 + C:0802H LINE# 22 + C:0807H LINE# 23 + C:080CH LINE# 25 + C:080EH LINE# 26 + C:0810H LINE# 27 + C:0812H LINE# 28 + C:0814H LINE# 29 + C:0819H LINE# 30 + C:081EH LINE# 31 + C:0823H LINE# 32 + C:0828H LINE# 34 + C:082AH LINE# 35 + C:082CH LINE# 36 + C:082EH LINE# 37 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 11 + + + C:0830H LINE# 38 + C:0835H LINE# 39 + C:083AH LINE# 40 + C:083FH LINE# 41 + C:0844H LINE# 42 + C:0844H LINE# 43 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0C22H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0C22H LINE# 3 + C:0C22H LINE# 4 + C:0C22H LINE# 5 + C:0C25H LINE# 6 + C:0C2DH LINE# 7 + C:0C30H LINE# 9 + C:0C33H LINE# 10 + C:0C3BH LINE# 11 + C:0C3EH LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE DS1302 + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0AEEH PUBLIC _Read_Rtc + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:08E0H PUBLIC _Set_Rtc + C:091EH PUBLIC _Read_Ds1302_Byte + B:00A0H.3 PUBLIC SDA + B:0090H.7 PUBLIC SCK + C:0D1BH PUBLIC _Write_Ds1302_Byte + D:00C8H PUBLIC T2CON + C:0C5BH PUBLIC _Write_Ds1302 + B:0090H.3 PUBLIC RST + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 12 + + + D:00D0H PUBLIC PSW + ------- PROC _WRITE_DS1302 + D:0007H SYMBOL temp + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0C5BH LINE# 10 + C:0C5BH LINE# 11 + C:0C5BH LINE# 13 + C:0C67H LINE# 14 + C:0C67H LINE# 15 + C:0C69H LINE# 16 + C:0C6DH LINE# 17 + C:0C71H LINE# 18 + C:0C73H LINE# 19 + C:0C76H LINE# 20 + ------- ENDPROC _WRITE_DS1302 + ------- PROC _WRITE_DS1302_BYTE + D:0007H SYMBOL address + D:0005H SYMBOL dat + C:0D1BH LINE# 23 + C:0D1BH LINE# 24 + C:0D1BH LINE# 25 + C:0D1DH LINE# 26 + C:0D1EH LINE# 27 + C:0D20H LINE# 28 + C:0D21H LINE# 29 + C:0D23H LINE# 30 + C:0D24H LINE# 31 + C:0D27H LINE# 32 + C:0D2CH LINE# 33 + C:0D2EH LINE# 34 + ------- ENDPROC _WRITE_DS1302_BYTE + ------- PROC _READ_DS1302_BYTE + D:0007H SYMBOL address + ------- DO + D:0007H SYMBOL i + D:0005H SYMBOL temp + ------- ENDDO + C:091EH LINE# 37 + C:091EH LINE# 38 + C:091EH LINE# 39 + C:0920H LINE# 40 + C:0922H LINE# 41 + C:0923H LINE# 42 + C:0925H LINE# 43 + C:0926H LINE# 44 + C:0928H LINE# 45 + C:0929H LINE# 46 + C:092CH LINE# 47 + C:0938H LINE# 48 + C:0938H LINE# 49 + C:093AH LINE# 50 + C:093EH LINE# 51 + C:0941H LINE# 52 + C:0944H LINE# 53 + C:0946H LINE# 54 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 13 + + + C:0949H LINE# 55 + C:094BH LINE# 56 + C:094CH LINE# 57 + C:094EH LINE# 58 + C:094FH LINE# 59 + C:0951H LINE# 60 + C:0952H LINE# 61 + C:0954H LINE# 62 + C:0955H LINE# 63 + C:0957H LINE# 64 + C:0958H LINE# 65 + C:095AH LINE# 66 + ------- ENDPROC _READ_DS1302_BYTE + ------- PROC _SET_RTC + D:0058H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:08E0H LINE# 68 + C:08E6H LINE# 69 + C:08E6H LINE# 71 + C:08EDH LINE# 72 + C:08F9H LINE# 73 + C:08F9H LINE# 74 + C:0914H LINE# 75 + C:0917H LINE# 76 + ------- ENDPROC _SET_RTC + ------- PROC _READ_RTC + D:005BH SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0AEEH LINE# 79 + C:0AF4H LINE# 80 + C:0AF4H LINE# 82 + C:0B00H LINE# 83 + C:0B00H LINE# 84 + C:0B1BH LINE# 85 + C:0B1EH LINE# 86 + ------- ENDPROC _READ_RTC + ------- ENDMOD DS1302 + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0B93H PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0CDAH PUBLIC _Da_Write + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 14 + + + C:0D51H PUBLIC _IIC_Delay + C:0893H PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:095BH PUBLIC _EEPROM_Write + C:0D3EH PUBLIC IIC_Start + C:0CC3H PUBLIC IIC_SendAck + B:00A0H.1 PUBLIC SDA + C:09DBH PUBLIC _IIC_SendByte + C:0C81H PUBLIC IIC_WaitAck + C:0D59H PUBLIC IIC_Stop + B:00A0H.0 PUBLIC SCL + C:0B6DH PUBLIC IIC_RecByte + D:00D0H PUBLIC PSW + C:0D4DH SYMBOL L?0035 + ------- PROC L?0034 + ------- ENDPROC L?0034 + C:0D4DH SYMBOL L?0035 + ------- PROC _IIC_DELAY + D:0007H SYMBOL i + C:0D51H LINE# 23 + C:0D51H LINE# 24 + C:0D51H LINE# 25 + C:0D51H LINE# 26 + C:0D52H LINE# 27 + C:0D52H LINE# 28 + C:0D58H LINE# 29 + ------- ENDPROC _IIC_DELAY + ------- PROC IIC_START + C:0D3EH LINE# 32 + C:0D3EH LINE# 33 + C:0D3EH LINE# 34 + C:0D40H LINE# 35 + C:0D40H LINE# 36 + C:0D43H LINE# 37 + C:0D45H LINE# 38 + C:0D4AH LINE# 39 + C:0D4CH LINE# 40 + ------- ENDPROC IIC_START + ------- PROC IIC_STOP + C:0D59H LINE# 43 + C:0D59H LINE# 44 + C:0D59H LINE# 45 + C:0D5BH LINE# 46 + C:0D5BH LINE# 47 + C:0D5EH LINE# 48 + C:0D60H LINE# 49 + ------- ENDPROC IIC_STOP + ------- PROC IIC_SENDACK + B:0020H.1 SYMBOL ackbit + C:0CC3H LINE# 53 + C:0CC3H LINE# 54 + C:0CC3H LINE# 55 + C:0CC5H LINE# 56 + C:0CC9H LINE# 57 + C:0CCEH LINE# 58 + C:0CCEH LINE# 59 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 15 + + + C:0CD1H LINE# 60 + C:0CD3H LINE# 61 + C:0CD5H LINE# 62 + ------- ENDPROC IIC_SENDACK + ------- PROC L?0033 + ------- ENDPROC L?0033 + ------- PROC IIC_WAITACK + ------- DO + B:0020H.2 SYMBOL ackbit + ------- ENDDO + C:0C81H LINE# 66 + C:0C81H LINE# 67 + C:0C81H LINE# 70 + C:0C81H LINE# 71 + C:0C84H LINE# 72 + C:0C88H LINE# 73 + C:0C8AH LINE# 74 + C:0C8FH LINE# 75 + C:0C91H LINE# 76 + ------- ENDPROC IIC_WAITACK + ------- PROC L?0036 + ------- ENDPROC L?0036 + ------- PROC _IIC_SENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:09DBH LINE# 79 + C:09DDH LINE# 80 + C:09DDH LINE# 83 + C:09E9H LINE# 84 + C:09E9H LINE# 85 + C:09EBH LINE# 86 + C:09F0H LINE# 87 + C:09F8H LINE# 88 + C:09FAH LINE# 89 + C:09FFH LINE# 90 + C:0A01H LINE# 91 + C:0A05H LINE# 92 + C:0A0AH LINE# 93 + C:0A0DH LINE# 94 + C:0A0FH LINE# 95 + ------- ENDPROC _IIC_SENDBYTE + ------- PROC IIC_RECBYTE + ------- DO + D:0004H SYMBOL i + D:0005H SYMBOL da + ------- ENDDO + C:0B6DH LINE# 98 + C:0B6DH LINE# 99 + C:0B6DH LINE# 101 + C:0B79H LINE# 102 + C:0B79H LINE# 103 + C:0B79H LINE# 104 + C:0B7CH LINE# 105 + C:0B80H LINE# 106 + C:0B86H LINE# 107 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 16 + + + C:0B88H LINE# 108 + C:0B8DH LINE# 109 + C:0B90H LINE# 110 + C:0B92H LINE# 111 + ------- ENDPROC IIC_RECBYTE + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:0B93H LINE# 117 + C:0B93H LINE# 118 + C:0B93H LINE# 120 + C:0B93H LINE# 121 + C:0B93H LINE# 122 + C:0B96H LINE# 123 + C:0B9BH LINE# 124 + C:0B9EH LINE# 125 + C:0BA1H LINE# 126 + C:0BA6H LINE# 127 + C:0BA9H LINE# 128 + C:0BAEH LINE# 129 + C:0BB3H LINE# 130 + C:0BB6H LINE# 131 + C:0BB8H LINE# 132 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:0CDAH LINE# 134 + C:0CDAH LINE# 135 + C:0CDAH LINE# 136 + C:0CDAH LINE# 137 + C:0CDAH LINE# 138 + C:0CDDH LINE# 139 + C:0CE2H LINE# 140 + C:0CE5H LINE# 141 + C:0CEAH LINE# 142 + C:0CEDH LINE# 143 + ------- ENDPROC _DA_WRITE + ------- PROC _EEPROM_WRITE + D:004EH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0052H SYMBOL num + C:095BH LINE# 152 + C:0961H LINE# 153 + C:0961H LINE# 154 + C:0961H LINE# 155 + C:0964H LINE# 156 + C:0967H LINE# 158 + C:096CH LINE# 159 + C:096FH LINE# 161 + C:0976H LINE# 162 + C:0976H LINE# 163 + C:098BH LINE# 164 + C:098EH LINE# 165 + C:0993H LINE# 166 + C:0995H LINE# 167 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 17 + + + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:0053H SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0057H SYMBOL num + C:0893H LINE# 175 + C:0899H LINE# 176 + C:0899H LINE# 177 + C:0899H LINE# 178 + C:089CH LINE# 179 + C:089FH LINE# 181 + C:08A4H LINE# 182 + C:08A7H LINE# 184 + C:08AAH LINE# 185 + C:08AFH LINE# 186 + C:08B2H LINE# 188 + C:08B9H LINE# 189 + C:08B9H LINE# 190 + C:08CEH LINE# 191 + C:08D6H LINE# 192 + C:08DBH LINE# 193 + C:08DDH LINE# 195 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:0BFFH PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:0CF4H PUBLIC _Delay_OneWire + C:0B1FH PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:0B46H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:0ABAH PUBLIC rd_temperature + D:00D0H PUBLIC PSW + C:0CF0H SYMBOL L?0017 + ------- PROC L?0016 + ------- ENDPROC L?0016 + C:0CF0H SYMBOL L?0017 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + C:0CF4H LINE# 7 + C:0CF4H LINE# 8 + C:0CF4H LINE# 9 + C:0CFBH LINE# 10 + C:0D05H LINE# 12 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0003H SYMBOL dat + ------- DO + D:0002H SYMBOL i + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 18 + + + ------- ENDDO + C:0B1FH LINE# 15 + C:0B21H LINE# 16 + C:0B21H LINE# 18 + C:0B2DH LINE# 19 + C:0B2DH LINE# 20 + C:0B2FH LINE# 21 + C:0B33H LINE# 22 + C:0B36H LINE# 23 + C:0B38H LINE# 24 + C:0B3CH LINE# 25 + C:0B3FH LINE# 26 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0002H SYMBOL i + D:0003H SYMBOL dat + ------- ENDDO + C:0BFFH LINE# 30 + C:0BFFH LINE# 31 + C:0BFFH LINE# 35 + C:0C0BH LINE# 36 + C:0C0BH LINE# 37 + C:0C0DH LINE# 38 + C:0C11H LINE# 39 + C:0C13H LINE# 40 + C:0C16H LINE# 41 + C:0C16H LINE# 42 + C:0C19H LINE# 43 + C:0C19H LINE# 44 + C:0C1CH LINE# 45 + C:0C1FH LINE# 46 + C:0C21H LINE# 47 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.2 SYMBOL initflag + ------- ENDDO + C:0B46H LINE# 50 + C:0B46H LINE# 51 + C:0B46H LINE# 52 + C:0B48H LINE# 54 + C:0B4AH LINE# 55 + C:0B51H LINE# 56 + C:0B53H LINE# 57 + C:0B5AH LINE# 58 + C:0B5CH LINE# 59 + C:0B63H LINE# 60 + C:0B67H LINE# 61 + C:0B6AH LINE# 63 + C:0B6CH LINE# 64 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 19 + + + C:0ABAH LINE# 65 + C:0ABAH LINE# 66 + C:0ABAH LINE# 68 + C:0ABDH LINE# 69 + C:0AC2H LINE# 70 + C:0AC7H LINE# 71 + C:0ACAH LINE# 72 + C:0ACFH LINE# 73 + C:0AD4H LINE# 74 + C:0AD9H LINE# 75 + C:0ADCH LINE# 76 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ULTRASOUND + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + B:00D8H.7 PUBLIC CF + D:00F9H PUBLIC CH + D:00A8H PUBLIC IE + D:00E9H PUBLIC CL + B:00D8H.6 PUBLIC CR + D:00B8H PUBLIC IP + C:0A4BH PUBLIC Ut_Wave_Data + D:00D9H PUBLIC CMOD + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0C92H PUBLIC Ut_Wave_Init + C:0003H PUBLIC Delay12us + B:0090H.1 PUBLIC Rx + B:0090H.0 PUBLIC Tx + D:00D0H PUBLIC PSW + ------- PROC DELAY12US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0003H LINE# 7 + C:0003H LINE# 8 + C:0003H LINE# 11 + C:0004H LINE# 12 + C:0005H LINE# 13 + C:0007H LINE# 14 + C:0009H LINE# 15 + ------- ENDPROC DELAY12US + ------- PROC UT_WAVE_INIT + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0C92H LINE# 17 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 20 + + + C:0C92H LINE# 18 + C:0C92H LINE# 20 + C:0C9EH LINE# 21 + C:0C9EH LINE# 22 + C:0CA0H LINE# 23 + C:0CA3H LINE# 24 + C:0CA5H LINE# 25 + C:0CA8H LINE# 26 + C:0CABH LINE# 27 + ------- ENDPROC UT_WAVE_INIT + ------- PROC UT_WAVE_DATA + ------- DO + D:0006H SYMBOL time + ------- ENDDO + C:0A4BH LINE# 29 + C:0A4BH LINE# 30 + C:0A4BH LINE# 32 + C:0A4EH LINE# 33 + C:0A52H LINE# 34 + C:0A55H LINE# 35 + C:0A57H LINE# 36 + C:0A5DH LINE# 37 + C:0A5FH LINE# 38 + C:0A62H LINE# 39 + C:0A62H LINE# 40 + C:0A6AH LINE# 41 + C:0A7EH LINE# 42 + C:0A7EH LINE# 44 + C:0A7EH LINE# 45 + C:0A80H LINE# 46 + C:0A82H LINE# 47 + C:0A82H LINE# 48 + ------- ENDPROC UT_WAVE_DATA + ------- ENDMOD ULTRASOUND + + ------- MODULE ?C?FPADD + C:0015H PUBLIC ?C?FPADD + C:0011H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + + ------- MODULE ?C?FPMUL + C:0106H PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FPDIV + C:020FH PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FPCMP + C:02AEH PUBLIC ?C?FPCMP + C:02ACH PUBLIC ?C?FPCMP3 + ------- ENDMOD ?C?FPCMP + + ------- MODULE ?C?FCAST + C:032FH PUBLIC ?C?FCASTC + C:032AH PUBLIC ?C?FCASTI + C:0325H PUBLIC ?C?FCASTL + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 21 + + + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0363H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?CLDPTR + C:03E4H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CLDOPTR + C:03FDH PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:042AH PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?CSTOPTR + C:043CH PUBLIC ?C?CSTOPTR + ------- ENDMOD ?C?CSTOPTR + + ------- MODULE ?C?IMUL + C:045EH PUBLIC ?C?IMUL + ------- ENDMOD ?C?IMUL + + ------- MODULE ?C?UIDIV + C:0470H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:04C5H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_SET_RTC?DS1302 + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_READ_RTC?DS1302 + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_AD_READ?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?UT_WAVE_DATA?ULTRASOUND + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/03/2024 16:22:49 PAGE 22 + + + +Program Size: data=94.3 xdata=0 code=3428 +LINK/LOCATE RUN COMPLETE. 8 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Init.obj b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Init.obj new file mode 100644 index 0000000..af83cf0 Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Init.obj differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Key.obj b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Key.obj new file mode 100644 index 0000000..95132a5 Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Key.obj differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Led.obj b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Led.obj new file mode 100644 index 0000000..e595fdd Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Led.obj differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Seg.obj b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Seg.obj new file mode 100644 index 0000000..39d2904 Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Seg.obj differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Uart.obj b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Uart.obj new file mode 100644 index 0000000..22f63e6 Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/Uart.obj differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/ds1302.obj b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/ds1302.obj new file mode 100644 index 0000000..fc65eba Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/ds1302.obj differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/iic.obj b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/iic.obj new file mode 100644 index 0000000..9272de8 Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/iic.obj differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/main.obj b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/main.obj new file mode 100644 index 0000000..6e570f2 Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/main.obj differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/onewire.obj b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/onewire.obj new file mode 100644 index 0000000..d4f3172 Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/onewire.obj differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/ultrasound.obj b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/ultrasound.obj new file mode 100644 index 0000000..693fe7d Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/ultrasound.obj differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan new file mode 100644 index 0000000..0a848aa Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan differ diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan.build_log.htm b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..adaa9d3 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan.build_log.htm @@ -0,0 +1,60 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 + Target DLL: VDM51.DLL +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\blue-bridge-cup-learning\ʮʡ\ʮʡ\User\zuolan.uvproj +Project File Date: 01/25/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling ds1302.c... +compiling iic.c... +compiling onewire.c... +compiling ultrasound.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_SET_RTC?DS1302 +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_READ_RTC?DS1302 +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_AD_READ?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?UT_WAVE_DATA?ULTRASOUND +Program Size: data=94.3 xdata=0 code=3428 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 8 Warning(s). +
+ + diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan.hex b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan.hex new file mode 100644 index 0000000..0b4603a --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan.hex @@ -0,0 +1,272 @@ +:10084500082D0A0A0A0A0A0A0A0A082500000000F1 +:1008550000000000083F0000000000000000013D0E +:010865001979 +:100C3F00E4FFEFC3940874809480500F742D2FF845 +:0B0C4F00760A74252FF8E4F60F80E70A +:010C5A002277 +:10075A00E53770737537011207D28F21E5236521BA +:10076A00FF5521F522E521F45FF524852123E522B1 +:10077A0024FB604E24FD601614602B240570481279 +:10078A000C3F053EE53E75F0038485F03E22E53ECA +:10079A0064017033153DC37480948050047F0080D7 +:1007AA0002AF3D8F3D22E53E6401701B053DD3E556 +:1007BA003D94637480948040047F638002AF3D8FD0 +:0707CA003D22A200B39200E2 +:0107D1002205 +:1004D300E53645356003020645F535753601120AE2 +:1004E300BA8F3C8E3B8D3A8C39E4FFFE7DC87C424B +:1004F300AB3CAA3BA93AA8391201061203638E1E2C +:100503008F1F300073E4FFFE7D207C42AB3CAA3B8F +:10051300A93AA8391202AC40057547CC805AE4FFCA +:10052300FE7DA07C41AB3CAA3BA93AA8391202ACA0 +:1005330060025005754733803FE4FFFE7DA07CC118 +:10054300AB3CAA3BA93AA839120015E4FBFA79405F +:100553007840120106E4FBFA79A0784112020FE415 +:10056300FBFA7980783F120015E4FBFA794C784264 +:100573001201061203638F47AC47E412032FE4FB17 +:10058300FA794C784212020FE4FBFA79C8784212E6 +:100593000106120363AB07AA06E53E14604F14601D +:1005A3006624026003020645752D0BAE1EAF1F7C49 +:1005B300037DE81204707C007D0A1204708D31AE55 +:1005C3001EAF1F7C007D641204707C007D0A120440 +:1005D300708D32AE1EAF1F7C007D0A1204707C004A +:1005E3007D0A1204708D33AE1EAF1F8049752D0C2A +:1005F300E53D75F00A8475F00A8485F033E53D75B1 +:10060300F00A8485F03422752D0D7C007D64AF03E0 +:10061300AE021204707C007D0A1204708D327C00DD +:100623007D0AAF03AE021204707C007D0A120470CF +:100633008D33AE02AF037C007D0A1204708D3475D6 +:020643002A018A +:010645002292 +:10099800AF47120CDA2000047F0180027F008F3FEE +:1009A800AF3E7E00EF70047D0180027D008D40EF38 +:1009B80064014E70047F0180027F008F41E53E6430 +:0C09C8000270047F0180027F008F422239 +:100D0600538E7F5389F0758A18758CFCC28DD28CF0 +:050D1600D2A9D2AF22BA +:03000B000206D218 +:1006D200C0E0C0F0C083C082C0D075D000C000C0EE +:1006E20001C002C003C004C005C006C0070537E54B +:1006F20037640A7002F5370536E53670020535FFB4 +:10070200AE35BE0109BFF4067535007536000538F1 +:10071200E53864087002F538742D2538F8E6FD7C5A +:100722000074252538F8E6FB7A00AF38120A837484 +:100732003F2538F8E6FD7C00AF38120A10D007D00A +:1007420006D005D004D003D002D001D000D0D0D042 +:0807520082D083D0F0D0E03228 +:0E0D2F0000007F237E337DB6DDFEDEFCDFFAA2 +:010D3D002293 +:100CAC00120ABA120D2F120C22120D0612075A122A +:070CBC0004D312099880F532 +:100866000148000149FF014A00014BFF014C00010C +:020876004DFF34 +:100A1000ED4C600FA8077401088002C333D8FC4274 +:100A200048800EA8077401088002C333D8FCF45232 +:100A300048E54865496013E548F4F580E5A0541F92 +:0A0A40004480F5A053A01F8548492B +:010A4A002289 +:100BB900EF6005434A408003534ABFE54A654B60ED +:100BC90011854A80E5A0541F44A0F5A053A01F85B4 +:020BD9004A4B85 +:010BDB0022F7 +:100BDC00EF6005434C108003534CEFE54C654D60C2 +:100BEC0011854C80E5A0541F44A0F5A053A01F858F +:020BFC004C4D5E +:010BFE0022D4 +:100878000E08C0F9A4B0999282F88090FFC68C88BF +:0A0888000816010204081020408049 +:100A83007580FFE5A0541F44E0F5A074162FF8E627 +:100A9300F580E5A0541F44C0F5A053A01F74082D92 +:100AA300F8E6F580EB4A600353807FE5A0541F44CA +:070AB300E0F5A053A01F2293 +:1007D200E4FFC2C4D2C2D2B5D2B420B3027F042095 +:1007E200B2027F0520B1027F0620B0027F07D2C489 +:1007F200C2C2D2B5D2B420B3027F0820B2027F09AE +:1008020020B1027F0A20B0027F0BD2C4D2C2C2B58D +:10081200D2B420B3027F0C20B2027F0D20B1027F3E +:100822000E20B0027F0FD2C4D2C2D2B5C2B420B35E +:10083200027F1020B2027F1120B1027F1220B0028B +:020842007F1322 +:010844002291 +:100C22007580FFE5A0541F4480F5A053A01FE4F592 +:0D0C320080E5A0541F44A0F5A053A01F2290 +:100C5B00E4FEEEC3940874809480500FC297EF1398 +:0B0C6B0092A3EFC313FFD2970E80E7A7 +:010C7600225B +:100D1B00C29300C29700D29300120C5BAF05120C6A +:040D2B005BC29322F2 +:10091E00E4FDC29300C29700D29300120C5BE4FF79 +:10092E00EFC39408748094805011C297EDC313FDE9 +:10093E0030A303430580D2970F80E5C29300C29780 +:0C094E0000D29700C2A300D2A300AF05A6 +:01095A00227A +:0608E0008B588A59895A69 +:1008E600E4FD7F8E120D1BE4FCECC394037480942C +:1008F60080501EEC25E0FFC374849FFFAB58AA59B5 +:10090600A95A8C827583001203FDFD120D1B0C8003 +:08091600D87D807F8E020D1BCD +:060AEE008B5B8A5C895D50 +:100AF400E4FCECC3940374809480501EEC25E0FF66 +:100B0400C374859FFF12091EAB5BAA5CA95D8C822E +:0A0B1400758300EF12043C0C80D83A +:010B1E0022B4 +:040D4D00D2A07F05AC +:080D510000AE071FEE70F9224D +:0F0D3E00D2A1120D4DC2A17F05120D51C2A022EC +:0C0D5900C2A1120D4DD2A17F05020D5168 +:100CC300C2A0A20192A17F05120D51120D4DC2A027 +:070CD300D2A17F05020D51C3 +:0A0C7700AB07120D3E7F901209DB5F +:100C8100120D4DA2A19202C2A07F05120D51A20226 +:010C91002240 +:0709D400AB05120D3E7FA0F0 +:0209DB00AD0766 +:1009DD00E4FCECC39408748094805024C2A07F057D +:1009ED00120D51ED30E704D2A18002C2A17F051294 +:1009FD000D51D2A0ED25E0FD7F05120D510C80D2D9 +:020A0D00C2A085 +:010A0F0022C4 +:100B6D00E4FCECC39408748094805017120D4DED85 +:100B7D0025E0FD30A103430501C2A07F05120D51F3 +:050B8D000C80DFAF0544 +:010B92002240 +:100B9300120C77AF031209DB120C81120D3E7F9109 +:100BA3001209DB120C81120B6DAD07D201120CC3BB +:050BB300120D59AF0511 +:010BB800221A +:100CDA00120C777F411209DB120C81AF031209DB78 +:060CEA00120C81020D59FD +:10095B008B4E8A4F89501209D4120C81AF031209A6 +:10096B00DB120C81AF521552EF601FAB4E0550E5F9 +:10097B0050AA4F7002054F14F91203E4FF1209DB62 +:0D098B00120C817FC8120D5180DA020D5947 +:100893008B538A5489551209D4120C81AF03120960 +:1008A300DB120C81120D3E7FA11209DB120C81AF0A +:1008B300571557EF6024120B6DAB530555E555AA39 +:1008C300547002055414F9EF12042AE5576004C268 +:0D08D300018002D201120CC380D5020D5924 +:040CF0007F057E00FE +:100CF4007C007D0C12045EEF1FAC0670011E4C706C +:020D0400F622D5 +:020B1F00AB0722 +:100B2100E4FAEAC39408748094805012C294EB13DF +:100B31009294120CF0D294EBC313FB0A80E47F056C +:050B41007E00020CF42F +:100BFF00E4FAEAC39408748094805014C294EBC34F +:100C0F0013FBD294309403430380120CF00A80E25A +:020C1F00AF0321 +:010C210022B0 +:100B4600C202D2947F0C7E00120CF4C2947F507EB7 +:100B560000120CF4D2947F0A7E00120CF4A2949236 +:060B660002120CF0A202D5 +:010B6C002266 +:100ABA00120B467FCC120B1F7F44120B1F120B46E0 +:100ACA007FCC120B1F7FBE120B1F120BFFA907123E +:100ADA000BFFEFAD01FCEC12032AE4FBFA798078F4 +:040AEA004102020FB4 +:0600030000007F26DFFE75 +:0100090022D4 +:100C9200E4FEEEC3940874809480500DD29012004A +:090CA20003C2901200030E80E968 +:010CAB002226 +:100A4B00E4F5D9F5E9F5F9120C92D2DE30910330C9 +:100A5B00DFFAC2DE20DF1CAFF9EFFEADE9EDFFAC34 +:100A6B0006E412032A7B967A43798B783C120106B3 +:070A7B00020363C2DF7F00EC +:010A82002251 +:10000E000203CFE86480F8E933E83360110460F04E +:10001E00ED33EC337009E8FCE9FDEAFEEBFF220458 +:10002E0060DED3EB9FEA9EE99DE8C2E78CF0C2F753 +:10003E0095F0400CE8CCF8E9CDF9EACEFAEBCFFB1F +:10004E0012039A85D0F05804700320D5B3E80470DB +:10005E00075002B2D50203D992D5EC0460F7E4CC76 +:10006E00C0E0C398F8603B94186008400DD0E0FBE8 +:10007E000203B1E4FBFAC9FC8028E830E406E4C9C7 +:10008E00FBE4CAFCE830E305E4C9CACBFCE854073C +:10009E006010F8C3E913F9EA13FAEB13FBEC13FC47 +:1000AE00D8F130F52FC3E49CFCEF9BFFEE9AFEEDEA +:1000BE0099FDD0E0FBEF4E4D4C701222DB03020394 +:1000CE00D6EC2CFCEF33FFEE33FEED33FDED30E7D7 +:1000DE00EB0203B1EF2BFFEE3AFEED39FDD0E0FB64 +:1000EE0050130BBB00030203D9ED13FDEE13FEEF0D +:0800FE0013FFEC13FC0203B137 +:10010600EC4D6011E8497017ED33EC3304600DE4F3 +:10011600FCFFFEFD22E933E8330470F80203CF1238 +:10012600039A58046009E4CC248150062850090239 +:1001360003D92840030203D6C0E0EB4A7044B980D5 +:1001460006D0E0FB0203C5EF4E701CBD8008EBFF36 +:10015600EAFEE9FD80EBE98DF0A4FEE5F00201EF91 +:10016600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89D4 +:10017600F0A42EFFE435F0CD89F0A42DFEE435F091 +:100186008067EF4E7005BD80D780C3EF8BF0A4ACBF +:10019600F0EE8BF0A42CFCE435F0F8EF8AF0A42CFA +:1001A600E5F038FCE433CB8DF0A42CFCE5F03BF80D +:1001B600EE8AF0A42CFCE5F038F8E433CF89F0A4FD +:1001C6002CFCE5F038CF3400CE89F0A42FFFE5F003 +:1001D6003EFEE433C98DF0A42EFEE5F039CD8AF05B +:1001E600A42FFFE5F03EFEE43DFD33D0E0FB5007D3 +:1001F6000BBB000F0203D9EC2CFCEF33FFEE33FEF2 +:06020600ED33FD0203B11F +:10020C000203D9EC5D046005E8590470030203CFC6 +:10021C0012039A580460F6EC4860F2EC7004FDFE90 +:10022C00FF22C860DB2481C85009C39860025006C5 +:10023C000203D69850CAF582E9294B4A7005AB8265 +:10024C000203C575F0007C1A7880C3EF9BEE9AED23 +:10025C0099400DC3EF9BFFEE9AFEED99FDE842F03D +:10026C00DC23ACF0D0E0FFD0E0FED0E0FDAB822090 +:10027C00E7101BEB60BAEC2CFCEF33FFEE33FEED1A +:10028C0033FD0203B1E803F830E705C0F075F00068 +:10029C00EF2FFFEE33FEED33FD40B830E7C280AAFE +:1002AC0074F8CC6480CCC86480C8F58204604FC3F9 +:1002BC00EB9FF5F0EA9E42F0E99D42F0E89C45F098 +:1002CC00603C501DE5825FFFE582D313CB5BCBF422 +:1002DC002B5582FB50280ABA002409B9002008804B +:1002EC001DE5825BFBE582D313CF5FCFF4C3132FE5 +:1002FC005582FF50090EBE00050DBD00010CC3EB6D +:10030C009FF5F0EA9E42F0E99D42F0E89C45F060D2 +:09031C0007CC4820E701B3EC22F4 +:1003250075F020800E75F010800575F0087D007E53 +:10033500007F003392D530D5031204C5EC3340104D +:10034500EF33FFEE33FEED33FDEC33FCD5F0ED225C +:0E035500E5F0247EA2D513CC92E7CDCEFF2298 +:10036300EDD2E7CD33EC3392D524814006E4FFFE92 +:10037300FDFC22FCE4CFCECDCC24E0501174FF80F1 +:10038300EDC3CC13CCCD13CDCE13CECF13CF04708E +:07039300F030D5DE0204C5C5 +:10039A00E9D2E7C933E833F892D5EDD2E7CD33ECA9 +:0703AA0033FC5002B2D52222 +:1003B100EC30E7100FBF000C0EBE00080DBD0004AD +:1003C1000BEB6014A2D5EB13FCED92E7FD2274FF59 +:1003D100FCFDFEFF22E480F8A2D574FF13FC7D80B2 +:0303E100E480EFC6 +:03000000020646AF +:0C064600787FE4F6D8FD75815D02068D1A +:1003E400BB010689828A83E0225002E722BBFE0217 +:0903F400E32289828A83E493224A +:1003FD00BB010CE58229F582E5833AF583E02250B5 +:10040D0006E92582F8E622BBFE06E92582F8E222FE +:0D041D00E58229F582E5833AF583E4932218 +:10042A00BB010689828A83F0225002F722BBFE01B1 +:02043A00F322AB +:10043C00F8BB010DE58229F582E5833AF583E8F0F6 +:10044C00225006E92582C8F622BBFE05E92582C8A2 +:02045C00F2228A +:10045E00EF8DF0A4A8F0CF8CF0A428CE8DF0A42EB2 +:02046E00FE226C +:10047000BC000BBE0029EF8DF084FFADF022E4CC70 +:10048000F875F008EF2FFFEE33FEEC33FCEE9DEC39 +:10049000984005FCEE9DFE0FD5F0E9E4CEFD22ED7F +:1004A000F8F5F0EE8420D21CFEADF075F008EF2FC9 +:1004B000FFED33FD4007985006D5F0F222C398FDBA +:0504C0000FD5F0EA2257 +:0E04C500C3E49FFFE49EFEE49DFDE49CFC2248 +:10065200020CACE493A3F8E493A34003F68001F206 +:1006620008DFF48029E493A3F85407240CC8C333A9 +:10067200C4540F4420C8834004F456800146F6DF78 +:10068200E4800B0102040810204080900845E47EBB +:10069200019360BCA3FF543F30E509541FFEE4936D +:1006A200A360010ECF54C025E060A840B8E493A334 +:1006B200FAE493A3F8E493A3C8C582C8CAC583CA5F +:1006C200F0A3C8C582C8CAC583CADFE9DEE780BE17 +:010892000065 +:00000001FF diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan.lnp b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan.lnp new file mode 100644 index 0000000..e3c9e8d --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/Objects/zuolan.lnp @@ -0,0 +1,11 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\ds1302.obj", +".\Objects\iic.obj", +".\Objects\onewire.obj", +".\Objects\ultrasound.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/main.c b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/main.c new file mode 100644 index 0000000..7cbc2a0 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/main.c @@ -0,0 +1,176 @@ +#include "main.h" +/* */ +uchar Key_Slow_Down; // רñ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾݴ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Сݴ +uchar Seg_Pos; // ɨרñ +uint Seg_Slow_Down; // ܼרñ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Ledʾݴ + +uchar Seg_show_mode; // 0¶ȣ12DAC +float temperature_value; +uchar temperature_demo = 25; +uchar DAC_out_digit; +bit DAC_flag; // 0Ϊ 1Ϊ¶ȹϵ +void init_Seg() +{ + uchar i; + for (i = 0; i < 8; i++) + { + Seg_Buf[i] = 10; + Seg_Point[i] = 0; + } +} + +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Old, Key_Up; // רñ + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; // ̼ٳ + + Key_Val = Key_Read(); // ʵʱȡֵ + Key_Down = Key_Val & (Key_Old ^ Key_Val); // ׽½ + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); // ׽Ͻ + Key_Old = Key_Val; // ɨ + switch (Key_Down) + { + case 4: + init_Seg(); + Seg_show_mode = (++Seg_show_mode) % 3; + break; + case 8: + if (Seg_show_mode == 1) + temperature_demo = (--temperature_demo < 0) ? 0 : temperature_demo; + break; + case 9: + if (Seg_show_mode == 1) + temperature_demo = (++temperature_demo > 99) ? 99 : temperature_demo; + break; + case 5: + DAC_flag ^= 1; + break; + } +} + +/* Ϣ */ +void Seg_Proc() +{ + uint temp_temperature; + uint DAC_out_analog_x100; + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; // ܼٳ + temperature_value = rd_temperature(); + temp_temperature = temperature_value * 100; + if (DAC_flag) + { + if (temperature_value >= 40) + DAC_out_digit = 204; // 4*255/5 + else if (temperature_value <= 20) + DAC_out_digit = 51; // 1*255/5 + else + DAC_out_digit = ((temperature_value - 20) * 3.0 / 20.0 + 1.0) * 51; + } + DAC_out_analog_x100 = DAC_out_digit / 51.0 * 100; + switch (Seg_show_mode) + { + case 0: + /* ¶Ƚ */ + Seg_Buf[0] = 11; // C + Seg_Buf[4] = temp_temperature / 1000 % 10; + Seg_Buf[5] = temp_temperature / 100 % 10; + Seg_Buf[6] = temp_temperature / 10 % 10; + Seg_Buf[7] = temp_temperature % 10; + Seg_Point[5] = 1; + break; + case 1: + /**/ + Seg_Buf[0] = 12; // P + Seg_Buf[6] = temperature_demo / 10 % 10; + Seg_Buf[7] = temperature_demo % 10; + break; + case 2: + /*DAC*/ + Seg_Buf[0] = 13; // A + Seg_Buf[5] = DAC_out_analog_x100 / 100 % 10; + Seg_Buf[6] = DAC_out_analog_x100 / 10 % 10; + Seg_Buf[7] = DAC_out_analog_x100 % 10; + Seg_Point[5] = 1; + break; + } +} + +/* ʾ */ +void Led_Proc() +{ + Da_Write(DAC_out_digit); + ucLed[0] = !DAC_flag; + ucLed[1] = (Seg_show_mode == 0); + ucLed[2] = (Seg_show_mode == 1); + ucLed[3] = (Seg_show_mode == 2); +} + +/* ʱ0жϳʼ */ +void Timer0Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; // ʱж0 + EA = 1; // жϴ +} + +/* ʱ0жϷ */ +void Timer0Server() interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; // ̼ר + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; // ܼר + if (++Seg_Pos == 8) + Seg_Pos = 0; // ʾר + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void Delay750ms() //@12MHz +{ + unsigned char i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} + +/* Main */ +void main() +{ + // ¶ȶȡĻ + rd_temperature(); + Delay750ms(); + + System_Init(); + Timer0Init(); + + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/main.h b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/main.h new file mode 100644 index 0000000..3f72b5d --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/main.h @@ -0,0 +1,15 @@ +/* 头文件声明区 */ +#include //单片机寄存器专用头文件 +#include //初始化底层驱动专用头文件 +#include //Led底层驱动专用头文件 +#include //按键底层驱动专用头文件 +#include //数码管底层驱动专用头文件 +#include //标准库底层驱动专用头文件 +#include //温度传感器底层驱动 +#include //ds1302底层驱动专用头文件 +#include //IIC底层驱动专用头文件 +#include //超声波 +#include +#include +#define uchar unsigned char +#define uint unsigned int diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/zuolan.uvgui.haze b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/zuolan.uvgui.haze new file mode 100644 index 0000000..f9b8871 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/zuolan.uvgui.haze @@ -0,0 +1,1369 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -32000 + -32000 + + + -1 + -1 + + + 223 + 240 + 1432 + 1037 + + + + 0 + + 349 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF54433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CB5DACAAEB6FEBDECCAA1C8FC5CB5DACAAEB6FEBDECCAA1C8FC5C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000094010000660000000006000036020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100006600000070040000D3000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000370200000006000006030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000060300000006000019030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100006600000070040000D3000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200006600000070040000B7010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100001F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000009001000036020000000000004F000000900100001F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000A701000070040000280200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000001F020000000600002302000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000003A020000000600001D030000000000002302000000060000060300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2076 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000094B65795F636F756E7496000000000000000400094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E676500000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 1 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 17 + 112 + 124 + 1 + + 0 + + + + +
diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/zuolan.uvopt b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/zuolan.uvopt new file mode 100644 index 0000000..d9acf7b --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/zuolan.uvopt @@ -0,0 +1,284 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + -1 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\ds1302.c + ds1302.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + 2 + 9 + 1 + 0 + 0 + 0 + 0 + ..\Driver\ultrasound.c + ultrasound.c + 0 + 0 + + + +
diff --git a/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/zuolan.uvproj b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/zuolan.uvproj new file mode 100644 index 0000000..4b5bd01 --- /dev/null +++ b/题目/真题/12 第十二届省赛_左岚/第一套/第十二届省赛1/User/zuolan.uvproj @@ -0,0 +1,420 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + ds1302.c + 1 + ..\Driver\ds1302.c + + + iic.c + 1 + ..\Driver\iic.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + ultrasound.c + 1 + ..\Driver\ultrasound.c + + + + + + + +
diff --git a/题目/真题/12 第十二届省赛_左岚/第二套/第12届省赛第二次-NE555和ADC.pdf b/题目/真题/12 第十二届省赛_左岚/第二套/第12届省赛第二次-NE555和ADC.pdf new file mode 100644 index 0000000..39d6dba Binary files /dev/null and b/题目/真题/12 第十二届省赛_左岚/第二套/第12届省赛第二次-NE555和ADC.pdf differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/.vscode/settings.json b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/.vscode/settings.json new file mode 100644 index 0000000..174f5f7 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/.vscode/settings.json @@ -0,0 +1,17 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp", + "led.h": "c" + } +} \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Init.c b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Init.h b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Key.c b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Key.c new file mode 100644 index 0000000..dbf9fe3 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Key.c @@ -0,0 +1,43 @@ +#include + +unsigned char Key_Read() +{ + unsigned char temp = 0; + //1 + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if(P33 == 0) temp = 4; + if(P32 == 0) temp = 5; + if(P31 == 0) temp = 6; + if(P30 == 0) temp = 7; + //2 + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if(P33 == 0) temp = 8; + if(P32 == 0) temp = 9; + if(P31 == 0) temp = 10; + if(P30 == 0) temp = 11; + //3 + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if(P33 == 0) temp = 12; + if(P32 == 0) temp = 13; + if(P31 == 0) temp = 14; + if(P30 == 0) temp = 15; + //4 + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if(P33 == 0) temp = 16; + if(P32 == 0) temp = 17; + if(P31 == 0) temp = 18; + if(P30 == 0) temp = 19; + return temp; +} \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Key.h b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Key.h new file mode 100644 index 0000000..898c524 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Key.h @@ -0,0 +1,3 @@ +#include + +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Led.c b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Led.c new file mode 100644 index 0000000..7981bde --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Led.c @@ -0,0 +1,72 @@ +#include +static unsigned char temp = 0x00; +static unsigned char temp_old = 0xff; +// ַ0-7Ƿʹ +void Led_Disp(unsigned char addr, enable) +{ + // ֵ֤Ϊı + static unsigned char temp_0 = 0x00; + static unsigned char temp_old_0 = 0xff; + // ĵǰ״̬ + if (enable) + temp_0 |= 0x01 << addr; + else + temp_0 &= ~(0x01 << addr); + // ǰ״̬֮ǰ״̬ͬвled + if (temp_0 != temp_old_0) + { + P0 = ~temp_0; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old_0 = temp_0; + } +} + +void Beep(unsigned char flag) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (flag) + temp |= 0x40; + else + temp &= ~0x40; + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} + +void Relay(unsigned char flag) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (flag) + temp |= 0x10; + else + temp &= ~0x10; + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} +void MOTOR(unsigned char flag) +{ + + if (flag) + temp |= 0x20; + else + temp &= ~0x20; + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Led.h b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Led.h new file mode 100644 index 0000000..1185eef --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Led.h @@ -0,0 +1,6 @@ +#include + +void Led_Disp(unsigned char addr, enable); +void Beep(unsigned char flag); +void Relay(unsigned char flag); +void MOTOR(unsigned char flag); \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Seg.c b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Seg.c new file mode 100644 index 0000000..a670731 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Seg.c @@ -0,0 +1,22 @@ +#include +// ѡ 0 1 2 3 4 5 6 7 8 9 F H A P +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0x8e, 0x89, 0x88, 0x8c}; +// λѡ 2^0,2^1,2^2,2^3,2^4,2^52^6,2^7һ˸ +unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + +void Seg_Disp(unsigned char wela, dula, point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Seg.h b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Seg.h new file mode 100644 index 0000000..3c5c898 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/Seg.h @@ -0,0 +1,3 @@ +#include + +void Seg_Disp(unsigned char wela,dula,point); \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ds1302.c b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ds1302.c new file mode 100644 index 0000000..a7a2946 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ds1302.c @@ -0,0 +1,86 @@ +#include "ds1302.h" +#include +#include + +sbit SCK = P1 ^ 7; +sbit SDA = P2 ^ 3; +sbit RST = P1 ^ 3; + +// дֽ +void Write_Ds1302(unsigned char temp) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + SCK = 0; + SDA = temp & 0x01; + temp >>= 1; // һλһλд + SCK = 1; + } +} + +// DS1302Ĵд +void Write_Ds1302_Byte(unsigned char address, unsigned char dat) +{ + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST = 0; +} + +// DS1302Ĵ +unsigned char Read_Ds1302_Byte(unsigned char address) +{ + unsigned char i, temp = 0x00; + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + for (i = 0; i < 8; i++) + { + SCK = 0; + temp >>= 1; + if (SDA) + temp |= 0x80; + SCK = 1; + } + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + SCK = 1; + _nop_(); + SDA = 0; + _nop_(); + SDA = 1; + _nop_(); + return (temp); +} + +void Set_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + Write_Ds1302_Byte(0x8e, 0x00); + for (i = 0; i < 3; i++) + { + Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + } + Write_Ds1302_Byte(0x8e, 0x80); +} + +void Read_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + for (i = 0; i < 3; i++) + { + ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + } +} \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ds1302.h b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ds1302.h new file mode 100644 index 0000000..bb8f991 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ds1302.h @@ -0,0 +1,12 @@ +#ifndef __DS1302_H +#define __DS1302_H + + + +void Write_Ds1302(unsigned char temp); +void Write_Ds1302_Byte( unsigned char address,unsigned char dat ); +unsigned char Read_Ds1302_Byte( unsigned char address ); +void Set_Rtc(unsigned char* ucRtc); +void Read_Rtc(unsigned char* ucRtc); + +#endif diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/iic.c b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/iic.c new file mode 100644 index 0000000..0135cf3 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/iic.c @@ -0,0 +1,196 @@ +/* + ˵: IIC + : Keil uVision 4.10 + Ӳ: CT107Ƭۺʵѵƽ̨ 805112MHz + : 2011-8-9 +*/ + +#include "iic.h" + + +#include "intrins.h" + +#define DELAY_TIME 5 + +#define Photo_Res_Channel 0x41 +#define Adj_Res_Channel 0x43 + + +//Ŷ +sbit SDA = P2^1; /* */ +sbit SCL = P2^0; /* ʱ */ + +void IIC_Delay(unsigned char i) +{ + do { + _nop_(); + } + while(i--); +} + +// +void IIC_Start(void) +{ + SDA = 1; + SCL = 1; + IIC_Delay(DELAY_TIME); + SDA = 0; + IIC_Delay(DELAY_TIME); + SCL = 0; +} + +//ֹͣ +void IIC_Stop(void) +{ + SDA = 0; + SCL = 1; + IIC_Delay(DELAY_TIME); + SDA = 1; + IIC_Delay(DELAY_TIME); +} + +//Ӧ +void IIC_SendAck(bit ackbit) +{ + SCL = 0; + SDA = ackbit; // 0Ӧ1Ӧ + IIC_Delay(DELAY_TIME); + SCL = 1; + IIC_Delay(DELAY_TIME); + SCL = 0; + SDA = 1; + IIC_Delay(DELAY_TIME); +} + +//ȴӦ +bit IIC_WaitAck(void) +{ + bit ackbit; + + SCL = 1; + IIC_Delay(DELAY_TIME); + ackbit = SDA; + SCL = 0; + IIC_Delay(DELAY_TIME); + return ackbit; +} + +//ͨI2C߷ +void IIC_SendByte(unsigned char byt) +{ + unsigned char i; + + for(i=0; i<8; i++) + { + SCL = 0; + IIC_Delay(DELAY_TIME); + if(byt & 0x80) SDA = 1; + else SDA = 0; + IIC_Delay(DELAY_TIME); + SCL = 1; + byt <<= 1; + IIC_Delay(DELAY_TIME); + } + SCL = 0; +} + +//I2CϽ +unsigned char IIC_RecByte(void) +{ + unsigned char i, da; + for(i=0; i<8; i++) + { + SCL = 1; + IIC_Delay(DELAY_TIME); + da <<= 1; + if(SDA) da |= 1; + SCL = 0; + IIC_Delay(DELAY_TIME); + } + return da; +} + + + + + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + IIC_Start(); + IIC_SendByte(0x90); + IIC_WaitAck(); + IIC_SendByte(addr); + IIC_WaitAck(); + IIC_Start(); + IIC_SendByte(0x91); + IIC_WaitAck(); + temp = IIC_RecByte(); + IIC_SendAck(1); + IIC_Stop(); + return temp; +} + +void Da_Write(unsigned char dat) +{ + IIC_Start(); + IIC_SendByte(0x90); + IIC_WaitAck(); + IIC_SendByte(0x41); + IIC_WaitAck(); + IIC_SendByte(dat); + IIC_WaitAck(); + IIC_Stop(); +} + + + +//дEEPROM +//ڲҪдַдĵַ(Ϊ8ı)д +//ֵ +//ܣEERPOMijַдַضַ +void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) +{ + IIC_Start();//Ϳź + IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + IIC_WaitAck();//ȴEEPROM + + IIC_SendByte(addr);//дҪ洢ݵַ + IIC_WaitAck();//ȴEEPROM + + while(num--) + { + IIC_SendByte(*EEPROM_String++);//ҪдϢд + IIC_WaitAck();//ȴEEPROM + IIC_Delay(200); + } + IIC_Stop();//ֹͣ +} + + +//EEPROM +//ڲҪ洢ַȡĵַ(Ϊ8ı)ȡ +//ֵ +//ܣȡEERPOMijַеݣַС +void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) +{ + IIC_Start();//Ϳź + IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + IIC_WaitAck();//ȴEEPROM + + IIC_SendByte(addr);//дҪȡݵַ + IIC_WaitAck();//ȴEEPROM + + IIC_Start();//Ϳź + IIC_SendByte(0xA1);//ѡEEPROMоƬȷģʽ + IIC_WaitAck();//ȴEEPROM + + while(num--) + { + *EEPROM_String++ = IIC_RecByte();//ҪдϢд + if(num) IIC_SendAck(0);//Ӧ + else IIC_SendAck(1);//Ӧ + } + + IIC_Stop();//ֹͣ +} \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/iic.h b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/iic.h new file mode 100644 index 0000000..f51a055 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/iic.h @@ -0,0 +1,23 @@ +# include "STC15F2K60S2.H" + + +void IIC_Start(void); +void IIC_Stop(void); +bit IIC_WaitAck(void); +void IIC_SendAck(bit ackbit); +void IIC_SendByte(unsigned char byt); +unsigned char IIC_RecByte(void); +unsigned char Ad_Read(unsigned char addr); +void Da_Write(unsigned char dat); +//函数名:写EEPROM函数 +//入口参数:需要写入的字符串,写入的地址(务必为8的倍数),写入数量 +//返回值:无 +//函数功能:向EERPOM的某个地址写入字符串中特定数量的字符。 +void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num); + + +//函数名:读EEPROM函数 +//入口参数:读到的数据需要存储的字符串,读取的地址(务必为8的倍数),读取的数量 +//返回值:无 +//函数功能:读取EERPOM的某个地址中的数据,并存放在字符串数组中。 +void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/onewire.c b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/onewire.c new file mode 100644 index 0000000..97d39c4 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/onewire.c @@ -0,0 +1,77 @@ +#include "onewire.h" +#include "reg52.h" + +sbit DQ = P1 ^ 4; + +// ڲʱ +void Delay_OneWire(unsigned int t) +{ + t *= 12; + while (t--) + ; +} + +// д +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; // һһд + } + Delay_OneWire(5); +} + +// ߶ +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + if (DQ) + { + dat |= 0x80; // һһȡ + } + Delay_OneWire(5); + } + return dat; +} + +// DS18B20ʼ +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); // ʼ + Write_DS18B20(0xcc); // ROM + Write_DS18B20(0x44); // ¶ת + init_ds18b20(); // ʼ + Write_DS18B20(0xcc); // ROM + Write_DS18B20(0xbe); // ȡ¶ + low = Read_DS18B20(); // λ + high = Read_DS18B20(); // λ + return ((high << 8) | low) / 16.0; +} \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/onewire.h b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/onewire.h new file mode 100644 index 0000000..8df55c8 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/onewire.h @@ -0,0 +1,5 @@ +#ifndef __ONEWIRE_H +#define __ONEWIRE_H + +float rd_temperature(void); +#endif diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ultrasound.c b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ultrasound.c new file mode 100644 index 0000000..02bf181 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ultrasound.c @@ -0,0 +1,50 @@ +#include +#include "intrins.h" + +sbit Tx = P1 ^ 0; +sbit Rx = P1 ^ 1; + +void Delay12us() //@12.000MHz +{ + unsigned char i; + + _nop_(); + _nop_(); + i = 38; + while (--i) + ; +} + +void Ut_Wave_Init() +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + Tx = 1; + Delay12us(); + Tx = 0; + Delay12us(); + } +} + +unsigned char Ut_Wave_Data() // 超声波距离读取函数 +{ + unsigned int time; // 时间储存变量 + TMOD &= 0x0f; // 配置PCA工作模式 + TH1 = TL1 = 0; // 复位计数值 等待超声波信号发出 + Ut_Wave_Init(); // 发送超声波信号 + TR1 = 1; // 开始计时 + while ((Rx == 1) && (TF1 == 0)) + ; // 等待接受返回信号或者定时器溢出 + TR1 = 0; // 停止计时 + if (TF1 == 0) // 定时器没有溢出 + { + time = TH1 << 8 | TL1; // 读取当前时间 + return (time * 0.017); // 返回距离值 + } + else + { + TF1 = 0; // 清除溢出标志位 + return 0; + } +} diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ultrasound.h b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ultrasound.h new file mode 100644 index 0000000..1014dd8 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/Driver/ultrasound.h @@ -0,0 +1,3 @@ +#include + +unsigned char Ut_Wave_Data(); \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Init.lst b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Init.lst new file mode 100644 index 0000000..198308d --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 02/02/2024 22:27:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Key.lst b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Key.lst new file mode 100644 index 0000000..8cb5d2d --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Key.lst @@ -0,0 +1,69 @@ +C51 COMPILER V9.59.0.0 KEY 02/02/2024 22:27:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include + 2 + 3 unsigned char Key_Read() + 4 { + 5 1 unsigned char temp = 0; + 6 1 //1 + 7 1 P44 = 0; + 8 1 P42 = 1; + 9 1 P35 = 1; + 10 1 P34 = 1; + 11 1 if(P33 == 0) temp = 4; + 12 1 if(P32 == 0) temp = 5; + 13 1 if(P31 == 0) temp = 6; + 14 1 if(P30 == 0) temp = 7; + 15 1 //2 + 16 1 P44 = 1; + 17 1 P42 = 0; + 18 1 P35 = 1; + 19 1 P34 = 1; + 20 1 if(P33 == 0) temp = 8; + 21 1 if(P32 == 0) temp = 9; + 22 1 if(P31 == 0) temp = 10; + 23 1 if(P30 == 0) temp = 11; + 24 1 //3 + 25 1 P44 = 1; + 26 1 P42 = 1; + 27 1 P35 = 0; + 28 1 P34 = 1; + 29 1 if(P33 == 0) temp = 12; + 30 1 if(P32 == 0) temp = 13; + 31 1 if(P31 == 0) temp = 14; + 32 1 if(P30 == 0) temp = 15; + 33 1 //4 + 34 1 P44 = 1; + 35 1 P42 = 1; + 36 1 P35 = 1; + 37 1 P34 = 0; + 38 1 if(P33 == 0) temp = 16; + 39 1 if(P32 == 0) temp = 17; + 40 1 if(P31 == 0) temp = 18; + 41 1 if(P30 == 0) temp = 19; + 42 1 return temp; + 43 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 115 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + C51 COMPILER V9.59.0.0 KEY 02/02/2024 22:27:49 PAGE 2 + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Led.lst b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Led.lst new file mode 100644 index 0000000..5e954fa --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Led.lst @@ -0,0 +1,82 @@ +C51 COMPILER V9.59.0.0 LED 02/02/2024 22:27:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include + 2 //ַ0-7Ƿʹ + 3 void Led_Disp(unsigned char addr,enable) + 4 { + 5 1 //ֵ֤Ϊı + 6 1 static unsigned char temp = 0x00; + 7 1 static unsigned char temp_old = 0xff; + 8 1 //ĵǰ״̬ + 9 1 if(enable) + 10 1 temp |= 0x01 << addr; + 11 1 else + 12 1 temp &= ~(0x01 << addr); + 13 1 //ǰ״̬֮ǰ״̬ͬвled + 14 1 if(temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 + 23 + 24 void Beep(unsigned char flag) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if(flag) + 29 1 temp |= 0x40; + 30 1 else + 31 1 temp &= ~0x40; + 32 1 if(temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + 40 + 41 void Relay(unsigned char flag) + 42 { + 43 1 static unsigned char temp = 0x00; + 44 1 static unsigned char temp_old = 0xff; + 45 1 if(flag) + 46 1 temp |= 0x10; + 47 1 else + 48 1 temp &= ~0x10; + 49 1 if(temp != temp_old) + 50 1 { + 51 2 P0 = temp; + 52 2 P2 = P2 & 0x1f | 0xa0; + 53 2 P2 &= 0x1f; + 54 2 temp_old = temp; + C51 COMPILER V9.59.0.0 LED 02/02/2024 22:27:49 PAGE 2 + + 55 2 } + 56 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 129 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 6 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Seg.lst b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Seg.lst new file mode 100644 index 0000000..631eb1c --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Seg.lst @@ -0,0 +1,46 @@ +C51 COMPILER V9.59.0.0 SEG 02/02/2024 22:27:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 F H A P + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0x8e, 0x89, 0x88, 0x8c}; + 5 // λѡ 2^0,2^1,2^2,2^3,2^4,2^52^6,2^7һ˸ + 6 unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 + 8 void Seg_Disp(unsigned char wela, dula, point) + 9 { + 10 1 // ֶ + 11 1 P0 = 0xff; + 12 1 P2 = P2 & 0x1f | 0xe0; + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 P0 = seg_dula[dula]; + 18 1 if (point) + 19 1 P0 &= 0x7f; + 20 1 P2 = P2 & 0x1f | 0xe0; + 21 1 P2 &= 0x1f; + 22 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 55 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 23 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Uart.lst b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Uart.lst new file mode 100644 index 0000000..5bd7842 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/Uart.lst @@ -0,0 +1,60 @@ +C51 COMPILER V9.59.0.0 UART 01/30/2024 15:23:39 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include + 2 + 3 /* 串口初始化函数 */ + 4 void UartInit(void) //9600bps@12.000MHz + 5 { + 6 1 SCON = 0x50; //8位数据,可变波特率 + 7 1 AUXR |= 0x01; //串口1选择定时器2为波特率发生器 + 8 1 AUXR |= 0x04; //定时器时钟1T模式 + 9 1 T2L = 0xC7; //设置定时初始值 + 10 1 T2H = 0xFE; //设置定时初始值 + 11 1 AUXR |= 0x10; //定时器2开始计时 + 12 1 ES = 1; + 13 1 EA = 1; + 14 1 } + 15 + 16 /* putchar重定向 */ + 17 extern char putchar(char ch) + 18 { + 19 1 SBUF= ch;//将dat数据赋给SBUF,将数据发送出去 + 20 1 while(TI == 0);//等待数据发送 + 21 1 TI = 0;//将发送标志位清零 + 22 1 return (ch); + 23 1 } + 24 void SendByte(unsigned char dat) + 25 { + 26 1 SBUF = dat; + 27 1 while (TI == 0) // 等待发送 + 28 1 ; + 29 1 TI = 0; // 将发送标志清零,准备下一次发送 + 30 1 } + 31 + 32 void Uart_Sent_String(unsigned char *dat) + 33 { + 34 1 while (*dat != "\0") + 35 1 SendByte(*dat++); + 36 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 82 ---- + CONSTANT SIZE = 2 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 3 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/ds1302.lst b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/ds1302.lst new file mode 100644 index 0000000..eaa423a --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/ds1302.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 DS1302 02/02/2024 22:27:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 #include "ds1302.h" + 2 #include + 3 #include + 4 + 5 sbit SCK = P1 ^ 7; + 6 sbit SDA = P2 ^ 3; + 7 sbit RST = P1 ^ 3; + 8 + 9 // дֽ + 10 void Write_Ds1302(unsigned char temp) + 11 { + 12 1 unsigned char i; + 13 1 for (i = 0; i < 8; i++) + 14 1 { + 15 2 SCK = 0; + 16 2 SDA = temp & 0x01; + 17 2 temp >>= 1; // һλһλд + 18 2 SCK = 1; + 19 2 } + 20 1 } + 21 + 22 // DS1302Ĵд + 23 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 24 { + 25 1 RST = 0; + 26 1 _nop_(); + 27 1 SCK = 0; + 28 1 _nop_(); + 29 1 RST = 1; + 30 1 _nop_(); + 31 1 Write_Ds1302(address); + 32 1 Write_Ds1302(dat); + 33 1 RST = 0; + 34 1 } + 35 + 36 // DS1302Ĵ + 37 unsigned char Read_Ds1302_Byte(unsigned char address) + 38 { + 39 1 unsigned char i, temp = 0x00; + 40 1 RST = 0; + 41 1 _nop_(); + 42 1 SCK = 0; + 43 1 _nop_(); + 44 1 RST = 1; + 45 1 _nop_(); + 46 1 Write_Ds1302(address); + 47 1 for (i = 0; i < 8; i++) + 48 1 { + 49 2 SCK = 0; + 50 2 temp >>= 1; + 51 2 if (SDA) + 52 2 temp |= 0x80; + 53 2 SCK = 1; + 54 2 } + C51 COMPILER V9.59.0.0 DS1302 02/02/2024 22:27:49 PAGE 2 + + 55 1 RST = 0; + 56 1 _nop_(); + 57 1 SCK = 0; + 58 1 _nop_(); + 59 1 SCK = 1; + 60 1 _nop_(); + 61 1 SDA = 0; + 62 1 _nop_(); + 63 1 SDA = 1; + 64 1 _nop_(); + 65 1 return (temp); + 66 1 } + 67 + 68 void Set_Rtc(unsigned char *ucRtc) + 69 { + 70 1 unsigned char i; + 71 1 Write_Ds1302_Byte(0x8e, 0x00); + 72 1 for (i = 0; i < 3; i++) + 73 1 { + 74 2 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 75 2 } + 76 1 Write_Ds1302_Byte(0x8e, 0x80); + 77 1 } + 78 + 79 void Read_Rtc(unsigned char *ucRtc) + 80 { + 81 1 unsigned char i; + 82 1 for (i = 0; i < 3; i++) + 83 1 { + 84 2 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 85 2 } + 86 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/iic.lst b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/iic.lst new file mode 100644 index 0000000..c75d9d3 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/iic.lst @@ -0,0 +1,226 @@ +C51 COMPILER V9.59.0.0 IIC 02/02/2024 22:27:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* + 2 ˵: IIC + 3 : Keil uVision 4.10 + 4 Ӳ: CT107Ƭۺʵѵƽ̨ 805112MHz + 5 : 2011-8-9 + 6 */ + 7 + 8 #include "iic.h" + 9 + 10 + 11 #include "intrins.h" + 12 + 13 #define DELAY_TIME 5 + 14 + 15 #define Photo_Res_Channel 0x41 + 16 #define Adj_Res_Channel 0x43 + 17 + 18 + 19 //Ŷ + 20 sbit SDA = P2^1; /* */ + 21 sbit SCL = P2^0; /* ʱ */ + 22 + 23 void IIC_Delay(unsigned char i) + 24 { + 25 1 do { + 26 2 _nop_(); + 27 2 } + 28 1 while(i--); + 29 1 } + 30 + 31 // + 32 void IIC_Start(void) + 33 { + 34 1 SDA = 1; + 35 1 SCL = 1; + 36 1 IIC_Delay(DELAY_TIME); + 37 1 SDA = 0; + 38 1 IIC_Delay(DELAY_TIME); + 39 1 SCL = 0; + 40 1 } + 41 + 42 //ֹͣ + 43 void IIC_Stop(void) + 44 { + 45 1 SDA = 0; + 46 1 SCL = 1; + 47 1 IIC_Delay(DELAY_TIME); + 48 1 SDA = 1; + 49 1 IIC_Delay(DELAY_TIME); + 50 1 } + 51 + 52 //Ӧ + 53 void IIC_SendAck(bit ackbit) + 54 { + C51 COMPILER V9.59.0.0 IIC 02/02/2024 22:27:49 PAGE 2 + + 55 1 SCL = 0; + 56 1 SDA = ackbit; // 0Ӧ1Ӧ + 57 1 IIC_Delay(DELAY_TIME); + 58 1 SCL = 1; + 59 1 IIC_Delay(DELAY_TIME); + 60 1 SCL = 0; + 61 1 SDA = 1; + 62 1 IIC_Delay(DELAY_TIME); + 63 1 } + 64 + 65 //ȴӦ + 66 bit IIC_WaitAck(void) + 67 { + 68 1 bit ackbit; + 69 1 + 70 1 SCL = 1; + 71 1 IIC_Delay(DELAY_TIME); + 72 1 ackbit = SDA; + 73 1 SCL = 0; + 74 1 IIC_Delay(DELAY_TIME); + 75 1 return ackbit; + 76 1 } + 77 + 78 //ͨI2C߷ + 79 void IIC_SendByte(unsigned char byt) + 80 { + 81 1 unsigned char i; + 82 1 + 83 1 for(i=0; i<8; i++) + 84 1 { + 85 2 SCL = 0; + 86 2 IIC_Delay(DELAY_TIME); + 87 2 if(byt & 0x80) SDA = 1; + 88 2 else SDA = 0; + 89 2 IIC_Delay(DELAY_TIME); + 90 2 SCL = 1; + 91 2 byt <<= 1; + 92 2 IIC_Delay(DELAY_TIME); + 93 2 } + 94 1 SCL = 0; + 95 1 } + 96 + 97 //I2CϽ + 98 unsigned char IIC_RecByte(void) + 99 { + 100 1 unsigned char i, da; + 101 1 for(i=0; i<8; i++) + 102 1 { + 103 2 SCL = 1; + 104 2 IIC_Delay(DELAY_TIME); + 105 2 da <<= 1; + 106 2 if(SDA) da |= 1; + 107 2 SCL = 0; + 108 2 IIC_Delay(DELAY_TIME); + 109 2 } + 110 1 return da; + 111 1 } + 112 + 113 + 114 + 115 + 116 + C51 COMPILER V9.59.0.0 IIC 02/02/2024 22:27:49 PAGE 3 + + 117 unsigned char Ad_Read(unsigned char addr) + 118 { + 119 1 unsigned char temp; + 120 1 IIC_Start(); + 121 1 IIC_SendByte(0x90); + 122 1 IIC_WaitAck(); + 123 1 IIC_SendByte(addr); + 124 1 IIC_WaitAck(); + 125 1 IIC_Start(); + 126 1 IIC_SendByte(0x91); + 127 1 IIC_WaitAck(); + 128 1 temp = IIC_RecByte(); + 129 1 IIC_SendAck(1); + 130 1 IIC_Stop(); + 131 1 return temp; + 132 1 } + 133 + 134 void Da_Write(unsigned char dat) + 135 { + 136 1 IIC_Start(); + 137 1 IIC_SendByte(0x90); + 138 1 IIC_WaitAck(); + 139 1 IIC_SendByte(0x41); + 140 1 IIC_WaitAck(); + 141 1 IIC_SendByte(dat); + 142 1 IIC_WaitAck(); + 143 1 IIC_Stop(); + 144 1 } + 145 + 146 + 147 + 148 //дEEPROM + 149 //ڲҪдַдĵַ(Ϊ8ı)д + 150 //ֵ + 151 //ܣEERPOMijַдַضַ + 152 void EEPROM_Write(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) + 153 { + 154 1 IIC_Start();//Ϳź + 155 1 IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + 156 1 IIC_WaitAck();//ȴEEPROM + 157 1 + 158 1 IIC_SendByte(addr);//дҪ洢ݵַ + 159 1 IIC_WaitAck();//ȴEEPROM + 160 1 + 161 1 while(num--) + 162 1 { + 163 2 IIC_SendByte(*EEPROM_String++);//ҪдϢд + 164 2 IIC_WaitAck();//ȴEEPROM + 165 2 IIC_Delay(200); + 166 2 } + 167 1 IIC_Stop();//ֹͣ + 168 1 } + 169 + 170 + 171 //EEPROM + 172 //ڲҪ洢ַȡĵַ(Ϊ8ı)ȡ + 173 //ֵ + 174 //ܣȡEERPOMijַеݣַС + 175 void EEPROM_Read(unsigned char* EEPROM_String, unsigned char addr, unsigned char num) + 176 { + 177 1 IIC_Start();//Ϳź + 178 1 IIC_SendByte(0xA0);//ѡEEPROMоƬȷдģʽ + C51 COMPILER V9.59.0.0 IIC 02/02/2024 22:27:49 PAGE 4 + + 179 1 IIC_WaitAck();//ȴEEPROM + 180 1 + 181 1 IIC_SendByte(addr);//дҪȡݵַ + 182 1 IIC_WaitAck();//ȴEEPROM + 183 1 + 184 1 IIC_Start();//Ϳź + 185 1 IIC_SendByte(0xA1);//ѡEEPROMоƬȷģʽ + 186 1 IIC_WaitAck();//ȴEEPROM + 187 1 + 188 1 while(num--) + 189 1 { + 190 2 *EEPROM_String++ = IIC_RecByte();//ҪдϢд + 191 2 if(num) IIC_SendAck(0);//Ӧ + 192 2 else IIC_SendAck(1);//Ӧ + 193 2 } + 194 1 + 195 1 IIC_Stop();//ֹͣ + 196 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 385 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- 2 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/main.lst b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/main.lst new file mode 100644 index 0000000..9db8032 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/main.lst @@ -0,0 +1,365 @@ +C51 COMPILER V9.59.0.0 MAIN 02/02/2024 22:27:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* */ + 3 uchar Key_Slow_Down; // רñ + 4 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾݴ + 5 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Сݴ + 6 uchar Seg_Pos; // ɨרñ + 7 uint Seg_Slow_Down; // ܼרñ + 8 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Ledʾݴ + 9 + 10 uchar Seg_show_mode; // ʾ 0Ƶ 1ʪ 2 3 + 11 uchar celi_mode; // 0Ƶ 1ʪ 2 + 12 /*ʱ*/ + 13 uint time_1s; + 14 uint time_up_1s; + 15 /**/ + 16 uint freq; + 17 uchar humidity; + 18 uchar distance; + 19 + 20 uint freq_demo = 9000; + 21 uint humidity_demo = 40; + 22 uint dis_demo = 60; + 23 + 24 bit dis_flag; // 0Ϊcm1Ϊm + 25 bit freq_flag; // 0ΪHz1ΪkHz + 26 + 27 bit reset_relay_flag; + 28 void init_Seg_LED() // ʼܺLED + 29 { + 30 1 uchar i; + 31 1 for (i = 0; i < 8; i++) + 32 1 { + 33 2 ucLed[i] = 0; + 34 2 Seg_Buf[i] = 10; + 35 2 Seg_Point[i] = 0; + 36 2 } + 37 1 } + 38 + 39 /* ̴ */ + 40 void Key_Proc() + 41 { + 42 1 static uchar Key_Val, Key_Down, Key_Old, Key_Up; // רñ + 43 1 if (Key_Slow_Down) + 44 1 return; + 45 1 Key_Slow_Down = 1; // ̼ٳ + 46 1 + 47 1 Key_Val = Key_Read(); // ʵʱȡֵ + 48 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); // ׽½ + 49 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); // ׽Ͻ + 50 1 Key_Old = Key_Val; // ɨ + 51 1 if (Key_Down == 4) + 52 1 { + 53 2 Seg_show_mode = (++Seg_show_mode) % 4; + 54 2 celi_mode = 0; + C51 COMPILER V9.59.0.0 MAIN 02/02/2024 22:27:49 PAGE 2 + + 55 2 init_Seg_LED(); + 56 2 } + 57 1 if (Seg_show_mode == 3 && Key_Down == 5) + 58 1 { + 59 2 celi_mode = (++celi_mode) % 3; + 60 2 init_Seg_LED(); + 61 2 } + 62 1 if (Key_Down == 6) + 63 1 { + 64 2 switch (Seg_show_mode) + 65 2 { + 66 3 case 2: + 67 3 dis_flag ^= 1; + 68 3 Seg_Point[5] = 0; + 69 3 break; + 70 3 case 3: + 71 3 /* */ + 72 3 switch (celi_mode) + 73 3 { + 74 4 case 0: + 75 4 /* Ƶʲ */ + 76 4 freq_demo = (freq_demo + 500 > 12000) ? 1000 : freq_demo + 500; + 77 4 break; + 78 4 case 1: + 79 4 /*ʪȲ*/ + 80 4 humidity_demo = (humidity_demo + 10 > 60) ? 10 : humidity_demo + 10; + 81 4 break; + 82 4 case 2: + 83 4 /**/ + 84 4 dis_demo = (dis_demo + 10 > 120) ? 10 : dis_demo + 10; + 85 4 break; + 86 4 } + 87 3 break; + 88 3 } + 89 2 } + 90 1 if (Key_Down == 7) + 91 1 { + 92 2 switch (Seg_show_mode) + 93 2 { + 94 3 case 0: + 95 3 /* Ƶʾ */ + 96 3 freq_flag ^= 1; + 97 3 Seg_Point[6] = 0; + 98 3 break; + 99 3 case 3: + 100 3 /* */ + 101 3 switch (celi_mode) + 102 3 { + 103 4 case 0: + 104 4 /* Ƶʲ */ + 105 4 freq_demo = (freq_demo - 500 < 1000) ? 12000 : freq_demo - 500; + 106 4 break; + 107 4 case 1: + 108 4 /*ʪȲ*/ + 109 4 humidity_demo = (humidity_demo - 10 < 10) ? 60 : humidity_demo - 10; + 110 4 break; + 111 4 case 2: + 112 4 /**/ + 113 4 dis_demo = (dis_demo - 10 < 10) ? 120 : dis_demo - 10; + 114 4 break; + 115 4 } + 116 3 break; + C51 COMPILER V9.59.0.0 MAIN 02/02/2024 22:27:49 PAGE 3 + + 117 3 } + 118 2 } + 119 1 if (Key_Down == 7 && Seg_show_mode == 1) + 120 1 reset_relay_flag = 1; // ¿ʼʱ + 121 1 else + 122 1 reset_relay_flag = 0; + 123 1 // ̧ + 124 1 if (Key_Up == 7 && time_up_1s >= 1000) + 125 1 reset_relay_flag = 0; + 126 1 } + 127 + 128 /* Ϣ */ + 129 void Seg_Proc() + 130 { + 131 1 uchar temp_freq, i, temp_dis; + 132 1 if (Seg_Slow_Down) + 133 1 return; + 134 1 Seg_Slow_Down = 1; // ܼٳ + 135 1 humidity = Ad_Read(0x03) / 51.0 * 20; + 136 1 distance = Ut_Wave_Data(); + 137 1 if (humidity > 80) + 138 1 Da_Write(255); + 139 1 else if (humidity < humidity_demo) + 140 1 Da_Write(51); + 141 1 else + 142 1 Da_Write(255 - 204 * (80 - humidity) / (80 - humidity_demo)); + 143 1 switch (Seg_show_mode) + 144 1 { + 145 2 case 0: + 146 2 /* Ƶʾ */ + 147 2 Seg_Buf[0] = 11; // F + 148 2 // KHz + 149 2 if (freq_flag) + 150 2 { + 151 3 temp_freq = freq / 100; + 152 3 Seg_Buf[3] = temp_freq / 10000 % 10; + 153 3 Seg_Buf[4] = temp_freq / 1000 % 10; + 154 3 Seg_Buf[5] = temp_freq / 100 % 10; + 155 3 Seg_Buf[6] = temp_freq / 10 % 10; + 156 3 Seg_Buf[7] = temp_freq % 10; + 157 3 Seg_Point[6] = 1; + 158 3 for (i = 3; i < 6; i++) + 159 3 { + 160 4 if (Seg_Buf[i] == 0) + 161 4 Seg_Buf[i] = 10; + 162 4 else + 163 4 break; + 164 4 } + 165 3 } + 166 2 // Hz + 167 2 else + 168 2 { + 169 3 Seg_Buf[3] = freq / 10000 % 10; + 170 3 Seg_Buf[4] = freq / 1000 % 10; + 171 3 Seg_Buf[5] = freq / 100 % 10; + 172 3 Seg_Buf[6] = freq / 10 % 10; + 173 3 Seg_Buf[7] = freq % 10; + 174 3 for (i = 3; i < 7; i++) + 175 3 { + 176 4 if (Seg_Buf[i] == 0) + 177 4 Seg_Buf[i] = 10; + 178 4 else + C51 COMPILER V9.59.0.0 MAIN 02/02/2024 22:27:49 PAGE 4 + + 179 4 break; + 180 4 } + 181 3 } + 182 2 break; + 183 2 case 1: + 184 2 /*ʪʾ*/ + 185 2 Seg_Buf[0] = 12; // H + 186 2 Seg_Buf[6] = humidity / 10 % 10; + 187 2 Seg_Buf[7] = humidity % 10; + 188 2 break; + 189 2 case 2: + 190 2 /**/ + 191 2 Seg_Buf[0] = 13; // A + 192 2 if (dis_flag) + 193 2 { + 194 3 Seg_Buf[5] = distance / 100; + 195 3 Seg_Buf[6] = distance / 10 % 10; + 196 3 Seg_Buf[7] = distance % 10; + 197 3 Seg_Point[5] = 1; + 198 3 } + 199 2 else + 200 2 { + 201 3 Seg_Buf[5] = (distance / 100 == 0) ? 10 : distance / 100; + 202 3 Seg_Buf[6] = distance / 10 % 10; + 203 3 Seg_Buf[7] = distance % 10; + 204 3 } + 205 2 + 206 2 break; + 207 2 case 3: + 208 2 /**/ + 209 2 Seg_Buf[0] = 14; // P + 210 2 Seg_Buf[1] = celi_mode + 1; + 211 2 switch (celi_mode) + 212 2 { + 213 3 case 0: + 214 3 /* Ƶ */ + 215 3 temp_freq = freq_demo / 100; + 216 3 Seg_Buf[5] = (temp_freq / 100 == 0) ? 10 : temp_freq / 100; + 217 3 Seg_Buf[6] = temp_freq / 10 % 10; + 218 3 Seg_Buf[7] = temp_freq % 10; + 219 3 Seg_Point[6] = 1; + 220 3 break; + 221 3 case 1: + 222 3 /* ʪ */ + 223 3 Seg_Buf[6] = humidity_demo / 10; + 224 3 Seg_Buf[7] = humidity_demo % 10; + 225 3 break; + 226 3 case 2: + 227 3 /* */ + 228 3 temp_dis = dis_demo / 10; + 229 3 Seg_Buf[6] = temp_dis / 10; + 230 3 Seg_Buf[7] = temp_dis % 10; + 231 3 Seg_Point[6] = 1; + 232 3 break; + 233 3 } + 234 2 break; + 235 2 } + 236 1 } + 237 + 238 /* ʾ */ + 239 void Led_Proc() + 240 { + C51 COMPILER V9.59.0.0 MAIN 02/02/2024 22:27:49 PAGE 5 + + 241 1 } + 242 + 243 /* ʱ0жϳʼ */ + 244 void Timer0Init(void) // 1@12.000MHz + 245 { + 246 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 247 1 TMOD &= 0xF0; // öʱģʽ + 248 1 TMOD |= 0x05; // öʱ0Ϊ16λ + 249 1 TL0 = 0; // öʱʼֵ + 250 1 TH0 = 0; // öʱʼֵ + 251 1 TF0 = 0; // TF0־ + 252 1 TR0 = 1; // ʱ0ʼʱ + 253 1 } + 254 + 255 void Timer2_Init(void) // 1@12.000MHz + 256 { + 257 1 AUXR &= 0xFB; // ʱʱ12Tģʽ + 258 1 T2L = 0x18; // öʱʼֵ + 259 1 T2H = 0xFC; // öʱʼֵ + 260 1 AUXR |= 0x10; // ʱ2ʼʱ + 261 1 IE2 |= 0x04; // ʱ2ж + 262 1 EA = 1; // жϴ + 263 1 } + 264 + 265 /* ʱ2жϷ */ + 266 void Timer2Server() interrupt 12 + 267 { + 268 1 if (++Key_Slow_Down == 10) + 269 1 Key_Slow_Down = 0; // ̼ר + 270 1 if (++Seg_Slow_Down == 500) + 271 1 Seg_Slow_Down = 0; // ܼר + 272 1 if (++Seg_Pos == 8) + 273 1 Seg_Pos = 0; // ʾר + 274 1 if (++time_1s == 1000) + 275 1 { + 276 2 freq = TH0 << 8 | TL0; + 277 2 TH0 = 0; + 278 2 TL0 = 0; + 279 2 time_1s = 0; + 280 2 } + 281 1 if (reset_relay_flag) + 282 1 { + 283 2 if (++time_up_1s >= 1000) + 284 2 { + 285 3 time_up_1s = 1000; + 286 3 } + 287 2 } + 288 1 else + 289 1 { + 290 2 time_up_1s = 0; + 291 2 } + 292 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 293 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 294 1 } + 295 + 296 void Delay750ms() //@12MHz + 297 { + 298 1 unsigned char i, j, k; + 299 1 + 300 1 _nop_(); + 301 1 _nop_(); + 302 1 i = 35; + C51 COMPILER V9.59.0.0 MAIN 02/02/2024 22:27:49 PAGE 6 + + 303 1 j = 51; + 304 1 k = 182; + 305 1 do + 306 1 { + 307 2 do + 308 2 { + 309 3 while (--k) + 310 3 ; + 311 3 } while (--j); + 312 2 } while (--i); + 313 1 } + 314 + 315 /* Main */ + 316 void main() + 317 { + 318 1 // ¶ȶȡĻ + 319 1 rd_temperature(); + 320 1 Delay750ms(); + 321 1 + 322 1 System_Init(); + 323 1 Timer0Init(); + 324 1 Timer2_Init(); + 325 1 while (1) + 326 1 { + 327 2 Key_Proc(); + 328 2 Seg_Proc(); + 329 2 Led_Proc(); + 330 2 } + 331 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 1337 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 48 2 + IDATA SIZE = ---- ---- + BIT SIZE = 3 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/onewire.lst b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/onewire.lst new file mode 100644 index 0000000..f7522b2 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/onewire.lst @@ -0,0 +1,103 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/02/2024 22:27:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 #include "onewire.h" + 2 #include "reg52.h" + 3 + 4 sbit DQ = P1 ^ 4; + 5 + 6 // ڲʱ + 7 void Delay_OneWire(unsigned int t) + 8 { + 9 1 t *= 12; + 10 1 while (t--) + 11 1 ; + 12 1 } + 13 + 14 // д + 15 void Write_DS18B20(unsigned char dat) + 16 { + 17 1 unsigned char i; + 18 1 for (i = 0; i < 8; i++) + 19 1 { + 20 2 DQ = 0; + 21 2 DQ = dat & 0x01; + 22 2 Delay_OneWire(5); + 23 2 DQ = 1; + 24 2 dat >>= 1; // һһд + 25 2 } + 26 1 Delay_OneWire(5); + 27 1 } + 28 + 29 // ߶ + 30 unsigned char Read_DS18B20(void) + 31 { + 32 1 unsigned char i; + 33 1 unsigned char dat; + 34 1 + 35 1 for (i = 0; i < 8; i++) + 36 1 { + 37 2 DQ = 0; + 38 2 dat >>= 1; + 39 2 DQ = 1; + 40 2 if (DQ) + 41 2 { + 42 3 dat |= 0x80; // һһȡ + 43 3 } + 44 2 Delay_OneWire(5); + 45 2 } + 46 1 return dat; + 47 1 } + 48 + 49 // DS18B20ʼ + 50 bit init_ds18b20(void) + 51 { + 52 1 bit initflag = 0; + 53 1 + 54 1 DQ = 1; + C51 COMPILER V9.59.0.0 ONEWIRE 02/02/2024 22:27:49 PAGE 2 + + 55 1 Delay_OneWire(12); + 56 1 DQ = 0; + 57 1 Delay_OneWire(80); + 58 1 DQ = 1; + 59 1 Delay_OneWire(10); + 60 1 initflag = DQ; + 61 1 Delay_OneWire(5); + 62 1 + 63 1 return initflag; + 64 1 } + 65 float rd_temperature() + 66 { + 67 1 unsigned char low, high; + 68 1 init_ds18b20(); // ʼ + 69 1 Write_DS18B20(0xcc); // ROM + 70 1 Write_DS18B20(0x44); // ¶ת + 71 1 init_ds18b20(); // ʼ + 72 1 Write_DS18B20(0xcc); // ROM + 73 1 Write_DS18B20(0xbe); // ȡ¶ + 74 1 low = Read_DS18B20(); // λ + 75 1 high = Read_DS18B20(); // λ + 76 1 return ((high << 8) | low) / 16.0; + 77 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 187 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/ultrasound.lst b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/ultrasound.lst new file mode 100644 index 0000000..a6be85c --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/ultrasound.lst @@ -0,0 +1,76 @@ +C51 COMPILER V9.59.0.0 ULTRASOUND 02/02/2024 22:27:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASOUND +OBJECT MODULE PLACED IN .\Objects\ultrasound.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ultrasound.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\ultrasound.lst) TABS(2) OBJECT(.\Objects\ultrasound.obj) + +line level source + + 1 #include + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 + 7 void Delay12us() //@12.000MHz + 8 { + 9 1 unsigned char i; + 10 1 + 11 1 _nop_(); + 12 1 _nop_(); + 13 1 i = 38; + 14 1 while (--i) + 15 1 ; + 16 1 } + 17 + 18 void Ut_Wave_Init() + 19 { + 20 1 unsigned char i; + 21 1 for (i = 0; i < 8; i++) + 22 1 { + 23 2 Tx = 1; + 24 2 Delay12us(); + 25 2 Tx = 0; + 26 2 Delay12us(); + 27 2 } + 28 1 } + 29 + 30 unsigned char Ut_Wave_Data() // 超声波距离读取函数 + 31 { + 32 1 unsigned int time; // 时间储存变量 + 33 1 TMOD &= 0x0f; // 配置PCA工作模式 + 34 1 TH1 = TL1 = 0; // 复位计数值 等待超声波信号发出 + 35 1 Ut_Wave_Init(); // 发送超声波信号 + 36 1 TR1 = 1; // 开始计时 + 37 1 while ((Rx == 1) && (TF1 == 0)) + 38 1 ; // 等待接受返回信号或者定时器溢出 + 39 1 TR1 = 0; // 停止计时 + 40 1 if (TF1 == 0) // 定时器没有溢出 + 41 1 { + 42 2 time = TH1 << 8 | TL1; // 读取当前时间 + 43 2 return (time * 0.017); // 返回距离值 + 44 2 } + 45 1 else + 46 1 { + 47 2 TF1 = 0; // 清除溢出标志位 + 48 2 return 0; + 49 2 } + 50 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + C51 COMPILER V9.59.0.0 ULTRASOUND 02/02/2024 22:27:49 PAGE 2 + + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/zuolan.m51 b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/zuolan.m51 new file mode 100644 index 0000000..4554b25 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Listings/zuolan.m51 @@ -0,0 +1,1409 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\ds1302.obj, .\Objects\iic.obj, .\Objects\onewire.obj, .\Objects\ultrasound.obj TO .\Objects\zuolan PRI +>> NT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\ds1302.obj (DS1302) + .\Objects\iic.obj (IIC) + .\Objects\onewire.obj (ONEWIRE) + .\Objects\ultrasound.obj (ULTRASOUND) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?IMUL) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0017H UNIT ?DT?SEG + 001FH 0001H *** GAP *** + BIT 0020H.0 0000H.3 UNIT ?BI?MAIN + BIT 0020H.3 0000H.1 UNIT _BIT_GROUP_ + 0020H.4 0000H.4 *** GAP *** + DATA 0021H 0030H UNIT ?DT?MAIN + DATA 0051H 0006H UNIT ?DT?LED + DATA 0057H 0005H UNIT ?DT?_EEPROM_WRITE?IIC + DATA 005CH 0005H UNIT ?DT?_EEPROM_READ?IIC + DATA 0061H 0003H UNIT ?DT?_SET_RTC?DS1302 + DATA 0064H 0003H UNIT ?DT?_READ_RTC?DS1302 + DATA 0067H 0002H UNIT _DATA_GROUP_ + IDATA 0069H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 2 + + + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0058H UNIT ?C_INITSEG + CODE 005BH 0007H UNIT ?PR?DELAY12US?ULTRASOUND + CODE 0062H 0001H UNIT ?PR?LED_PROC?MAIN + CODE 0063H 0003H ABSOLUTE + CODE 0066H 0354H UNIT ?C?LIB_CODE + CODE 03BAH 0280H UNIT ?PR?SEG_PROC?MAIN + CODE 063AH 0177H UNIT ?PR?KEY_PROC?MAIN + CODE 07B1H 00D1H UNIT ?PR?TIMER2SERVER?MAIN + CODE 0882H 008CH UNIT ?C_C51STARTUP + CODE 090EH 0073H UNIT ?PR?KEY_READ?KEY + CODE 0981H 004DH UNIT ?PR?_EEPROM_READ?IIC + CODE 09CEH 003EH UNIT ?PR?_SET_RTC?DS1302 + CODE 0A0CH 003DH UNIT ?PR?_READ_DS1302_BYTE?DS1302 + CODE 0A49H 003DH UNIT ?PR?_EEPROM_WRITE?IIC + CODE 0A86H 003CH UNIT ?PR?_IIC_SENDBYTE?IIC + CODE 0AC2H 003BH UNIT ?PR?_LED_DISP?LED + CODE 0AFDH 0039H UNIT ?PR?UT_WAVE_DATA?ULTRASOUND + CODE 0B36H 0037H UNIT ?PR?_SEG_DISP?SEG + CODE 0B6DH 0034H UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 0BA1H 0031H UNIT ?PR?_READ_RTC?DS1302 + CODE 0BD2H 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 0BF9H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 0C20H 0026H UNIT ?PR?IIC_RECBYTE?IIC + CODE 0C46H 0026H UNIT ?PR?_AD_READ?IIC + CODE 0C6CH 0023H UNIT ?PR?_BEEP?LED + CODE 0C8FH 0023H UNIT ?PR?_RELAY?LED + CODE 0CB2H 0023H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0CD5H 0022H UNIT ?PR?INIT_SEG_LED?MAIN + CODE 0CF7H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0D14H 001CH UNIT ?PR?_WRITE_DS1302?DS1302 + CODE 0D30H 001BH UNIT ?PR?IIC_WAITACK?IIC + CODE 0D4BH 001AH UNIT ?PR?MAIN?MAIN + CODE 0D65H 001AH UNIT ?PR?UT_WAVE_INIT?ULTRASOUND + CODE 0D7FH 0017H UNIT ?PR?IIC_SENDACK?IIC + CODE 0D96H 0016H UNIT ?PR?_DA_WRITE?IIC + CODE 0DACH 0016H UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 0DC2H 0014H UNIT ?PR?_WRITE_DS1302_BYTE?DS1302 + CODE 0DD6H 0013H UNIT ?PR?TIMER0INIT?MAIN + CODE 0DE9H 0012H UNIT ?PR?TIMER2_INIT?MAIN + CODE 0DFBH 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 0E0AH 000FH UNIT ?PR?IIC_START?IIC + CODE 0E19H 000CH UNIT ?PR?_IIC_DELAY?IIC + CODE 0E25H 000CH UNIT ?PR?IIC_STOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------------- +?PR?TIMER2SERVER?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 3 + + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0INIT?MAIN + +--> ?PR?TIMER2_INIT?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.3 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +--> ?PR?INIT_SEG_LED?MAIN + +?PR?SEG_PROC?MAIN ----- ----- 0067H 0002H + +--> ?PR?_AD_READ?IIC + +--> ?PR?UT_WAVE_DATA?ULTRASOUND + +--> ?PR?_DA_WRITE?IIC + +?PR?_AD_READ?IIC ----- ----- ----- ----- + +--> ?PR?IIC_WAITACK?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?IIC_START?IIC + +--> ?PR?IIC_RECBYTE?IIC + +--> ?PR?IIC_SENDACK?IIC + +--> ?PR?IIC_STOP?IIC + +?PR?IIC_WAITACK?IIC 0020H.3 0000H.1 ----- ----- + +--> ?PR?IIC_START?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_START?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?_IIC_SENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?IIC_START?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 4 + + + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_RECBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_SENDACK?IIC 0020H.3 0000H.1 ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?IIC_STOP?IIC ----- ----- ----- ----- + +--> ?PR?_IIC_DELAY?IIC + +?PR?UT_WAVE_DATA?ULTRASOUND ----- ----- ----- ----- + +--> ?PR?UT_WAVE_INIT?ULTRASOUND + +?PR?UT_WAVE_INIT?ULTRASOUND ----- ----- ----- ----- + +--> ?PR?DELAY12US?ULTRASOUND + +?PR?_DA_WRITE?IIC ----- ----- ----- ----- + +--> ?PR?IIC_WAITACK?IIC + +--> ?PR?_IIC_SENDBYTE?IIC + +--> ?PR?IIC_STOP?IIC + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0062H PUBLIC Led_Proc + D:0025H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:03BAH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:002DH PUBLIC Seg_Buf + C:063AH PUBLIC Key_Proc + D:0035H PUBLIC Seg_Slow_Down + B:0020H.0 PUBLIC reset_relay_flag + D:00D8H PUBLIC CCON + C:0D4BH PUBLIC main + D:0037H PUBLIC celi_mode + C:0DE9H PUBLIC Timer2_Init + B:0020H.1 PUBLIC freq_flag + D:0038H PUBLIC Key_Slow_Down + D:0039H PUBLIC freq + C:07B1H PUBLIC Timer2Server + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 5 + + + D:003BH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:003CH PUBLIC time_1s + D:003EH PUBLIC freq_demo + B:0020H.2 PUBLIC dis_flag + D:00AFH PUBLIC IE2 + D:008EH PUBLIC AUXR + D:0040H PUBLIC dis_demo + B:0088H.5 PUBLIC TF0 + C:0DD6H PUBLIC Timer0Init + D:0042H PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:00D6H PUBLIC T2H + D:0043H PUBLIC distance + D:008AH PUBLIC TL0 + D:00D7H PUBLIC T2L + B:0088H.4 PUBLIC TR0 + C:0CD5H PUBLIC init_Seg_LED + D:0044H PUBLIC ucLed + C:0DFBH PUBLIC Delay750ms + D:004CH PUBLIC humidity + D:004DH PUBLIC humidity_demo + D:00D0H PUBLIC PSW + D:004FH PUBLIC time_up_1s + ------- PROC INIT_SEG_LED + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0CD5H LINE# 28 + C:0CD5H LINE# 29 + C:0CD5H LINE# 31 + C:0CE1H LINE# 32 + C:0CE1H LINE# 33 + C:0CE7H LINE# 34 + C:0CEDH LINE# 35 + C:0CF3H LINE# 36 + C:0CF6H LINE# 37 + ------- ENDPROC INIT_SEG_LED + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Old + D:0024H SYMBOL Key_Up + ------- ENDDO + C:063AH LINE# 40 + C:063AH LINE# 41 + C:063AH LINE# 43 + C:0641H LINE# 45 + C:0644H LINE# 47 + C:0649H LINE# 48 + C:0652H LINE# 49 + C:0658H LINE# 50 + C:065BH LINE# 51 + C:0661H LINE# 52 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 6 + + + C:0661H LINE# 53 + C:0669H LINE# 54 + C:066CH LINE# 55 + C:066FH LINE# 56 + C:066FH LINE# 57 + C:067BH LINE# 58 + C:067BH LINE# 59 + C:0686H LINE# 60 + C:0689H LINE# 61 + C:0689H LINE# 62 + C:0692H LINE# 63 + C:0692H LINE# 64 + C:069BH LINE# 65 + C:069BH LINE# 66 + C:069BH LINE# 67 + C:06A0H LINE# 68 + C:06A3H LINE# 69 + C:06A5H LINE# 70 + C:06A5H LINE# 72 + C:06B1H LINE# 73 + C:06B1H LINE# 74 + C:06B1H LINE# 76 + C:06CEH LINE# 77 + C:06D0H LINE# 78 + C:06D0H LINE# 80 + C:06ECH LINE# 81 + C:06EEH LINE# 82 + C:06EEH LINE# 84 + C:070AH LINE# 85 + C:070AH LINE# 86 + C:070AH LINE# 87 + C:070AH LINE# 88 + C:070AH LINE# 89 + C:070AH LINE# 90 + C:0710H LINE# 91 + C:0710H LINE# 92 + C:071AH LINE# 93 + C:071AH LINE# 94 + C:071AH LINE# 96 + C:071FH LINE# 97 + C:0722H LINE# 98 + C:0724H LINE# 99 + C:0724H LINE# 101 + C:0730H LINE# 102 + C:0730H LINE# 103 + C:0730H LINE# 105 + C:074DH LINE# 106 + C:074FH LINE# 107 + C:074FH LINE# 109 + C:076CH LINE# 110 + C:076EH LINE# 111 + C:076EH LINE# 113 + C:078BH LINE# 114 + C:078BH LINE# 115 + C:078BH LINE# 116 + C:078BH LINE# 117 + C:078BH LINE# 118 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 7 + + + C:078BH LINE# 119 + C:0797H LINE# 120 + C:079BH LINE# 122 + C:079DH LINE# 124 + C:07AEH LINE# 125 + C:07B0H LINE# 126 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:0067H SYMBOL temp_freq + D:0068H SYMBOL i + D:0007H SYMBOL temp_dis + ------- ENDDO + C:03BAH LINE# 129 + C:03BAH LINE# 130 + C:03BAH LINE# 132 + C:03C3H LINE# 134 + C:03C8H LINE# 135 + C:03ECH LINE# 136 + C:03F1H LINE# 137 + C:03FCH LINE# 138 + C:0400H LINE# 139 + C:040AH LINE# 140 + C:040EH LINE# 142 + C:0434H LINE# 143 + C:044FH LINE# 144 + C:044FH LINE# 145 + C:044FH LINE# 147 + C:0452H LINE# 149 + C:0458H LINE# 150 + C:0458H LINE# 151 + C:0465H LINE# 152 + C:0479H LINE# 153 + C:048DH LINE# 154 + C:049AH LINE# 155 + C:04A7H LINE# 156 + C:04B0H LINE# 157 + C:04B3H LINE# 158 + C:04C4H LINE# 159 + C:04C4H LINE# 160 + C:04CFH LINE# 161 + C:04D6H LINE# 163 + C:04D6H LINE# 164 + C:04DAH LINE# 165 + C:04DAH LINE# 168 + C:04DAH LINE# 169 + C:04EEH LINE# 170 + C:0502H LINE# 171 + C:0516H LINE# 172 + C:052AH LINE# 173 + C:0537H LINE# 174 + C:0548H LINE# 175 + C:0548H LINE# 176 + C:0553H LINE# 177 + C:055AH LINE# 179 + C:055AH LINE# 180 + C:055EH LINE# 181 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 8 + + + C:055EH LINE# 182 + C:055EH LINE# 183 + C:055EH LINE# 185 + C:0561H LINE# 186 + C:056EH LINE# 187 + C:0570H LINE# 188 + C:0572H LINE# 189 + C:0572H LINE# 191 + C:0575H LINE# 192 + C:0578H LINE# 193 + C:0578H LINE# 194 + C:0580H LINE# 195 + C:058DH LINE# 196 + C:0596H LINE# 197 + C:0599H LINE# 198 + C:059AH LINE# 200 + C:059AH LINE# 201 + C:05A9H LINE# 202 + C:05B6H LINE# 203 + C:05BFH LINE# 204 + C:05BFH LINE# 206 + C:05C0H LINE# 207 + C:05C0H LINE# 209 + C:05C3H LINE# 210 + C:05C8H LINE# 211 + C:05D4H LINE# 212 + C:05D4H LINE# 213 + C:05D4H LINE# 215 + C:05E1H LINE# 216 + C:05F0H LINE# 217 + C:05FDH LINE# 218 + C:05FFH LINE# 219 + C:05FFH LINE# 220 + C:0601H LINE# 221 + C:0601H LINE# 223 + C:060EH LINE# 224 + C:061BH LINE# 225 + C:061CH LINE# 226 + C:061CH LINE# 228 + C:0627H LINE# 229 + C:062EH LINE# 230 + C:0636H LINE# 231 + C:0639H LINE# 232 + C:0639H LINE# 233 + C:0639H LINE# 234 + C:0639H LINE# 235 + C:0639H LINE# 236 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0062H LINE# 239 + C:0062H LINE# 240 + C:0062H LINE# 241 + ------- ENDPROC LED_PROC + ------- PROC TIMER0INIT + C:0DD6H LINE# 244 + C:0DD6H LINE# 245 + C:0DD6H LINE# 246 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 9 + + + C:0DD9H LINE# 247 + C:0DDCH LINE# 248 + C:0DDFH LINE# 249 + C:0DE2H LINE# 250 + C:0DE4H LINE# 251 + C:0DE6H LINE# 252 + C:0DE8H LINE# 253 + ------- ENDPROC TIMER0INIT + ------- PROC TIMER2_INIT + C:0DE9H LINE# 255 + C:0DE9H LINE# 256 + C:0DE9H LINE# 257 + C:0DECH LINE# 258 + C:0DEFH LINE# 259 + C:0DF2H LINE# 260 + C:0DF5H LINE# 261 + C:0DF8H LINE# 262 + C:0DFAH LINE# 263 + ------- ENDPROC TIMER2_INIT + ------- PROC TIMER2SERVER + C:07B1H LINE# 266 + C:07CEH LINE# 268 + C:07D6H LINE# 269 + C:07D8H LINE# 270 + C:07E9H LINE# 271 + C:07EFH LINE# 272 + C:07F7H LINE# 273 + C:07F9H LINE# 274 + C:080AH LINE# 275 + C:080AH LINE# 276 + C:0814H LINE# 277 + C:0817H LINE# 278 + C:081AH LINE# 279 + C:0820H LINE# 280 + C:0820H LINE# 281 + C:0823H LINE# 282 + C:0823H LINE# 283 + C:0834H LINE# 284 + C:0834H LINE# 285 + C:083AH LINE# 286 + C:083AH LINE# 287 + C:083CH LINE# 289 + C:083CH LINE# 290 + C:0842H LINE# 291 + C:0842H LINE# 292 + C:0859H LINE# 293 + C:0867H LINE# 294 + ------- ENDPROC TIMER2SERVER + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0DFBH LINE# 296 + C:0DFBH LINE# 297 + C:0DFBH LINE# 300 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 10 + + + C:0DFCH LINE# 301 + C:0DFDH LINE# 302 + C:0DFFH LINE# 303 + C:0E01H LINE# 304 + C:0E03H LINE# 306 + C:0E03H LINE# 308 + C:0E03H LINE# 309 + C:0E05H LINE# 311 + C:0E07H LINE# 312 + C:0E09H LINE# 313 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:0D4BH LINE# 316 + C:0D4BH LINE# 317 + C:0D4BH LINE# 319 + C:0D4EH LINE# 320 + C:0D51H LINE# 322 + C:0D54H LINE# 323 + C:0D57H LINE# 324 + C:0D5AH LINE# 325 + C:0D5AH LINE# 326 + C:0D5AH LINE# 327 + C:0D5DH LINE# 328 + C:0D60H LINE# 329 + C:0D63H LINE# 330 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:0C8FH PUBLIC _Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0AC2H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + C:0C6CH PUBLIC _Beep + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0004H SYMBOL enable + ------- DO + D:0051H SYMBOL temp + D:0052H SYMBOL temp_old + ------- ENDDO + C:0AC2H LINE# 3 + C:0AC2H LINE# 4 + C:0AC2H LINE# 9 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 11 + + + C:0AC6H LINE# 10 + C:0AD5H LINE# 12 + C:0AE3H LINE# 14 + C:0AE9H LINE# 15 + C:0AE9H LINE# 16 + C:0AEEH LINE# 17 + C:0AF6H LINE# 18 + C:0AF9H LINE# 19 + C:0AFCH LINE# 20 + C:0AFCH LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC _BEEP + D:0007H SYMBOL flag + ------- DO + D:0053H SYMBOL temp + D:0054H SYMBOL temp_old + ------- ENDDO + C:0C6CH LINE# 24 + C:0C6CH LINE# 25 + C:0C6CH LINE# 28 + C:0C6FH LINE# 29 + C:0C74H LINE# 31 + C:0C77H LINE# 32 + C:0C7DH LINE# 33 + C:0C7DH LINE# 34 + C:0C80H LINE# 35 + C:0C88H LINE# 36 + C:0C8BH LINE# 37 + C:0C8EH LINE# 38 + C:0C8EH LINE# 39 + ------- ENDPROC _BEEP + ------- PROC _RELAY + D:0007H SYMBOL flag + ------- DO + D:0055H SYMBOL temp + D:0056H SYMBOL temp_old + ------- ENDDO + C:0C8FH LINE# 41 + C:0C8FH LINE# 42 + C:0C8FH LINE# 45 + C:0C92H LINE# 46 + C:0C97H LINE# 48 + C:0C9AH LINE# 49 + C:0CA0H LINE# 50 + C:0CA0H LINE# 51 + C:0CA3H LINE# 52 + C:0CABH LINE# 53 + C:0CAEH LINE# 54 + C:0CB1H LINE# 55 + C:0CB1H LINE# 56 + ------- ENDPROC _RELAY + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 12 + + + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0B36H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0017H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0004H SYMBOL dula + D:0002H SYMBOL point + C:0B36H LINE# 8 + C:0B36H LINE# 9 + C:0B36H LINE# 11 + C:0B39H LINE# 12 + C:0B41H LINE# 13 + C:0B48H LINE# 14 + C:0B50H LINE# 15 + C:0B53H LINE# 17 + C:0B5AH LINE# 18 + C:0B5EH LINE# 19 + C:0B61H LINE# 20 + C:0B69H LINE# 21 + C:0B6CH LINE# 22 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:090EH PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 13 + + + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:090EH LINE# 3 + C:090EH LINE# 4 + C:090EH LINE# 5 + C:0910H LINE# 7 + C:0912H LINE# 8 + C:0914H LINE# 9 + C:0916H LINE# 10 + C:0918H LINE# 11 + C:091DH LINE# 12 + C:0922H LINE# 13 + C:0927H LINE# 14 + C:092CH LINE# 16 + C:092EH LINE# 17 + C:0930H LINE# 18 + C:0932H LINE# 19 + C:0934H LINE# 20 + C:0939H LINE# 21 + C:093EH LINE# 22 + C:0943H LINE# 23 + C:0948H LINE# 25 + C:094AH LINE# 26 + C:094CH LINE# 27 + C:094EH LINE# 28 + C:0950H LINE# 29 + C:0955H LINE# 30 + C:095AH LINE# 31 + C:095FH LINE# 32 + C:0964H LINE# 34 + C:0966H LINE# 35 + C:0968H LINE# 36 + C:096AH LINE# 37 + C:096CH LINE# 38 + C:0971H LINE# 39 + C:0976H LINE# 40 + C:097BH LINE# 41 + C:0980H LINE# 42 + C:0980H LINE# 43 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0CF7H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 14 + + + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0CF7H LINE# 3 + C:0CF7H LINE# 4 + C:0CF7H LINE# 5 + C:0CFAH LINE# 6 + C:0D02H LINE# 7 + C:0D05H LINE# 9 + C:0D08H LINE# 10 + C:0D10H LINE# 11 + C:0D13H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE DS1302 + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0BA1H PUBLIC _Read_Rtc + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:09CEH PUBLIC _Set_Rtc + C:0A0CH PUBLIC _Read_Ds1302_Byte + B:00A0H.3 PUBLIC SDA + B:0090H.7 PUBLIC SCK + C:0DC2H PUBLIC _Write_Ds1302_Byte + D:00C8H PUBLIC T2CON + C:0D14H PUBLIC _Write_Ds1302 + B:0090H.3 PUBLIC RST + D:00D0H PUBLIC PSW + ------- PROC _WRITE_DS1302 + D:0007H SYMBOL temp + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0D14H LINE# 10 + C:0D14H LINE# 11 + C:0D14H LINE# 13 + C:0D20H LINE# 14 + C:0D20H LINE# 15 + C:0D22H LINE# 16 + C:0D26H LINE# 17 + C:0D2AH LINE# 18 + C:0D2CH LINE# 19 + C:0D2FH LINE# 20 + ------- ENDPROC _WRITE_DS1302 + ------- PROC _WRITE_DS1302_BYTE + D:0007H SYMBOL address + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 15 + + + D:0005H SYMBOL dat + C:0DC2H LINE# 23 + C:0DC2H LINE# 24 + C:0DC2H LINE# 25 + C:0DC4H LINE# 26 + C:0DC5H LINE# 27 + C:0DC7H LINE# 28 + C:0DC8H LINE# 29 + C:0DCAH LINE# 30 + C:0DCBH LINE# 31 + C:0DCEH LINE# 32 + C:0DD3H LINE# 33 + C:0DD5H LINE# 34 + ------- ENDPROC _WRITE_DS1302_BYTE + ------- PROC _READ_DS1302_BYTE + D:0007H SYMBOL address + ------- DO + D:0007H SYMBOL i + D:0005H SYMBOL temp + ------- ENDDO + C:0A0CH LINE# 37 + C:0A0CH LINE# 38 + C:0A0CH LINE# 39 + C:0A0EH LINE# 40 + C:0A10H LINE# 41 + C:0A11H LINE# 42 + C:0A13H LINE# 43 + C:0A14H LINE# 44 + C:0A16H LINE# 45 + C:0A17H LINE# 46 + C:0A1AH LINE# 47 + C:0A26H LINE# 48 + C:0A26H LINE# 49 + C:0A28H LINE# 50 + C:0A2CH LINE# 51 + C:0A2FH LINE# 52 + C:0A32H LINE# 53 + C:0A34H LINE# 54 + C:0A37H LINE# 55 + C:0A39H LINE# 56 + C:0A3AH LINE# 57 + C:0A3CH LINE# 58 + C:0A3DH LINE# 59 + C:0A3FH LINE# 60 + C:0A40H LINE# 61 + C:0A42H LINE# 62 + C:0A43H LINE# 63 + C:0A45H LINE# 64 + C:0A46H LINE# 65 + C:0A48H LINE# 66 + ------- ENDPROC _READ_DS1302_BYTE + ------- PROC _SET_RTC + D:0061H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:09CEH LINE# 68 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 16 + + + C:09D4H LINE# 69 + C:09D4H LINE# 71 + C:09DBH LINE# 72 + C:09E7H LINE# 73 + C:09E7H LINE# 74 + C:0A02H LINE# 75 + C:0A05H LINE# 76 + ------- ENDPROC _SET_RTC + ------- PROC _READ_RTC + D:0064H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0BA1H LINE# 79 + C:0BA7H LINE# 80 + C:0BA7H LINE# 82 + C:0BB3H LINE# 83 + C:0BB3H LINE# 84 + C:0BCEH LINE# 85 + C:0BD1H LINE# 86 + ------- ENDPROC _READ_RTC + ------- ENDMOD DS1302 + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0C46H PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0D96H PUBLIC _Da_Write + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + C:0E1DH PUBLIC _IIC_Delay + C:0981H PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0A49H PUBLIC _EEPROM_Write + C:0E0AH PUBLIC IIC_Start + C:0D7FH PUBLIC IIC_SendAck + B:00A0H.1 PUBLIC SDA + C:0A8DH PUBLIC _IIC_SendByte + C:0D3AH PUBLIC IIC_WaitAck + C:0E25H PUBLIC IIC_Stop + B:00A0H.0 PUBLIC SCL + C:0C20H PUBLIC IIC_RecByte + D:00D0H PUBLIC PSW + C:0E19H SYMBOL L?0035 + ------- PROC L?0034 + ------- ENDPROC L?0034 + C:0E19H SYMBOL L?0035 + ------- PROC _IIC_DELAY + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 17 + + + D:0007H SYMBOL i + C:0E1DH LINE# 23 + C:0E1DH LINE# 24 + C:0E1DH LINE# 25 + C:0E1DH LINE# 26 + C:0E1EH LINE# 27 + C:0E1EH LINE# 28 + C:0E24H LINE# 29 + ------- ENDPROC _IIC_DELAY + ------- PROC IIC_START + C:0E0AH LINE# 32 + C:0E0AH LINE# 33 + C:0E0AH LINE# 34 + C:0E0CH LINE# 35 + C:0E0CH LINE# 36 + C:0E0FH LINE# 37 + C:0E11H LINE# 38 + C:0E16H LINE# 39 + C:0E18H LINE# 40 + ------- ENDPROC IIC_START + ------- PROC IIC_STOP + C:0E25H LINE# 43 + C:0E25H LINE# 44 + C:0E25H LINE# 45 + C:0E27H LINE# 46 + C:0E27H LINE# 47 + C:0E2AH LINE# 48 + C:0E2CH LINE# 49 + ------- ENDPROC IIC_STOP + ------- PROC IIC_SENDACK + B:0020H.3 SYMBOL ackbit + C:0D7FH LINE# 53 + C:0D7FH LINE# 54 + C:0D7FH LINE# 55 + C:0D81H LINE# 56 + C:0D85H LINE# 57 + C:0D8AH LINE# 58 + C:0D8AH LINE# 59 + C:0D8DH LINE# 60 + C:0D8FH LINE# 61 + C:0D91H LINE# 62 + ------- ENDPROC IIC_SENDACK + ------- PROC L?0033 + ------- ENDPROC L?0033 + ------- PROC IIC_WAITACK + ------- DO + B:0020H.3 SYMBOL ackbit + ------- ENDDO + C:0D3AH LINE# 66 + C:0D3AH LINE# 67 + C:0D3AH LINE# 70 + C:0D3AH LINE# 71 + C:0D3DH LINE# 72 + C:0D41H LINE# 73 + C:0D43H LINE# 74 + C:0D48H LINE# 75 + C:0D4AH LINE# 76 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 18 + + + ------- ENDPROC IIC_WAITACK + ------- PROC L?0036 + ------- ENDPROC L?0036 + ------- PROC _IIC_SENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0A8DH LINE# 79 + C:0A8FH LINE# 80 + C:0A8FH LINE# 83 + C:0A9BH LINE# 84 + C:0A9BH LINE# 85 + C:0A9DH LINE# 86 + C:0AA2H LINE# 87 + C:0AAAH LINE# 88 + C:0AACH LINE# 89 + C:0AB1H LINE# 90 + C:0AB3H LINE# 91 + C:0AB7H LINE# 92 + C:0ABCH LINE# 93 + C:0ABFH LINE# 94 + C:0AC1H LINE# 95 + ------- ENDPROC _IIC_SENDBYTE + ------- PROC IIC_RECBYTE + ------- DO + D:0004H SYMBOL i + D:0005H SYMBOL da + ------- ENDDO + C:0C20H LINE# 98 + C:0C20H LINE# 99 + C:0C20H LINE# 101 + C:0C2CH LINE# 102 + C:0C2CH LINE# 103 + C:0C2CH LINE# 104 + C:0C2FH LINE# 105 + C:0C33H LINE# 106 + C:0C39H LINE# 107 + C:0C3BH LINE# 108 + C:0C40H LINE# 109 + C:0C43H LINE# 110 + C:0C45H LINE# 111 + ------- ENDPROC IIC_RECBYTE + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:0C46H LINE# 117 + C:0C46H LINE# 118 + C:0C46H LINE# 120 + C:0C46H LINE# 121 + C:0C46H LINE# 122 + C:0C49H LINE# 123 + C:0C4EH LINE# 124 + C:0C51H LINE# 125 + C:0C54H LINE# 126 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 19 + + + C:0C59H LINE# 127 + C:0C5CH LINE# 128 + C:0C61H LINE# 129 + C:0C66H LINE# 130 + C:0C69H LINE# 131 + C:0C6BH LINE# 132 + ------- ENDPROC _AD_READ + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:0D96H LINE# 134 + C:0D96H LINE# 135 + C:0D96H LINE# 136 + C:0D96H LINE# 137 + C:0D96H LINE# 138 + C:0D99H LINE# 139 + C:0D9EH LINE# 140 + C:0DA1H LINE# 141 + C:0DA6H LINE# 142 + C:0DA9H LINE# 143 + ------- ENDPROC _DA_WRITE + ------- PROC _EEPROM_WRITE + D:0057H SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:005BH SYMBOL num + C:0A49H LINE# 152 + C:0A4FH LINE# 153 + C:0A4FH LINE# 154 + C:0A4FH LINE# 155 + C:0A52H LINE# 156 + C:0A55H LINE# 158 + C:0A5AH LINE# 159 + C:0A5DH LINE# 161 + C:0A64H LINE# 162 + C:0A64H LINE# 163 + C:0A79H LINE# 164 + C:0A7CH LINE# 165 + C:0A81H LINE# 166 + C:0A83H LINE# 167 + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:005CH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0060H SYMBOL num + C:0981H LINE# 175 + C:0987H LINE# 176 + C:0987H LINE# 177 + C:0987H LINE# 178 + C:098AH LINE# 179 + C:098DH LINE# 181 + C:0992H LINE# 182 + C:0995H LINE# 184 + C:0998H LINE# 185 + C:099DH LINE# 186 + C:09A0H LINE# 188 + C:09A7H LINE# 189 + C:09A7H LINE# 190 + C:09BCH LINE# 191 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 20 + + + C:09C4H LINE# 192 + C:09C9H LINE# 193 + C:09CBH LINE# 195 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:0CB2H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:0DB0H PUBLIC _Delay_OneWire + C:0BD2H PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:0BF9H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:0B6DH PUBLIC rd_temperature + D:00D0H PUBLIC PSW + C:0DACH SYMBOL L?0017 + ------- PROC L?0016 + ------- ENDPROC L?0016 + C:0DACH SYMBOL L?0017 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + C:0DB0H LINE# 7 + C:0DB0H LINE# 8 + C:0DB0H LINE# 9 + C:0DB7H LINE# 10 + C:0DC1H LINE# 12 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0003H SYMBOL dat + ------- DO + D:0002H SYMBOL i + ------- ENDDO + C:0BD2H LINE# 15 + C:0BD4H LINE# 16 + C:0BD4H LINE# 18 + C:0BE0H LINE# 19 + C:0BE0H LINE# 20 + C:0BE2H LINE# 21 + C:0BE6H LINE# 22 + C:0BE9H LINE# 23 + C:0BEBH LINE# 24 + C:0BEFH LINE# 25 + C:0BF2H LINE# 26 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0002H SYMBOL i + D:0003H SYMBOL dat + ------- ENDDO + C:0CB2H LINE# 30 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 21 + + + C:0CB2H LINE# 31 + C:0CB2H LINE# 35 + C:0CBEH LINE# 36 + C:0CBEH LINE# 37 + C:0CC0H LINE# 38 + C:0CC4H LINE# 39 + C:0CC6H LINE# 40 + C:0CC9H LINE# 41 + C:0CC9H LINE# 42 + C:0CCCH LINE# 43 + C:0CCCH LINE# 44 + C:0CCFH LINE# 45 + C:0CD2H LINE# 46 + C:0CD4H LINE# 47 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.3 SYMBOL initflag + ------- ENDDO + C:0BF9H LINE# 50 + C:0BF9H LINE# 51 + C:0BF9H LINE# 52 + C:0BFBH LINE# 54 + C:0BFDH LINE# 55 + C:0C04H LINE# 56 + C:0C06H LINE# 57 + C:0C0DH LINE# 58 + C:0C0FH LINE# 59 + C:0C16H LINE# 60 + C:0C1AH LINE# 61 + C:0C1DH LINE# 63 + C:0C1FH LINE# 64 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:0B6DH LINE# 65 + C:0B6DH LINE# 66 + C:0B6DH LINE# 68 + C:0B70H LINE# 69 + C:0B75H LINE# 70 + C:0B7AH LINE# 71 + C:0B7DH LINE# 72 + C:0B82H LINE# 73 + C:0B87H LINE# 74 + C:0B8CH LINE# 75 + C:0B8FH LINE# 76 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ULTRASOUND + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 22 + + + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + C:0AFDH PUBLIC Ut_Wave_Data + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + C:0D65H PUBLIC Ut_Wave_Init + C:005BH PUBLIC Delay12us + B:0090H.1 PUBLIC Rx + B:0088H.7 PUBLIC TF1 + B:0090H.0 PUBLIC Tx + D:008DH PUBLIC TH1 + D:008BH PUBLIC TL1 + B:0088H.6 PUBLIC TR1 + D:00D0H PUBLIC PSW + ------- PROC DELAY12US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:005BH LINE# 7 + C:005BH LINE# 8 + C:005BH LINE# 11 + C:005CH LINE# 12 + C:005DH LINE# 13 + C:005FH LINE# 14 + C:0061H LINE# 16 + ------- ENDPROC DELAY12US + ------- PROC UT_WAVE_INIT + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0D65H LINE# 18 + C:0D65H LINE# 19 + C:0D65H LINE# 21 + C:0D71H LINE# 22 + C:0D71H LINE# 23 + C:0D73H LINE# 24 + C:0D76H LINE# 25 + C:0D78H LINE# 26 + C:0D7BH LINE# 27 + C:0D7EH LINE# 28 + ------- ENDPROC UT_WAVE_INIT + ------- PROC UT_WAVE_DATA + ------- DO + D:0006H SYMBOL time + ------- ENDDO + C:0AFDH LINE# 30 + C:0AFDH LINE# 31 + C:0AFDH LINE# 33 + C:0B00H LINE# 34 + C:0B05H LINE# 35 + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 23 + + + C:0B08H LINE# 36 + C:0B0AH LINE# 37 + C:0B10H LINE# 39 + C:0B12H LINE# 40 + C:0B15H LINE# 41 + C:0B15H LINE# 42 + C:0B1DH LINE# 43 + C:0B31H LINE# 44 + C:0B31H LINE# 46 + C:0B31H LINE# 47 + C:0B33H LINE# 48 + C:0B35H LINE# 49 + C:0B35H LINE# 50 + ------- ENDPROC UT_WAVE_DATA + ------- ENDMOD ULTRASOUND + + ------- MODULE ?C?FPMUL + C:0066H PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FPDIV + C:016FH PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FCAST + C:0216H PUBLIC ?C?FCASTC + C:0211H PUBLIC ?C?FCASTI + C:020CH PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:024AH PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?CLDPTR + C:02CBH PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CLDOPTR + C:02E4H PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:0311H PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?CSTOPTR + C:0323H PUBLIC ?C?CSTOPTR + ------- ENDMOD ?C?CSTOPTR + + ------- MODULE ?C?IMUL + C:0345H PUBLIC ?C?IMUL + ------- ENDMOD ?C?IMUL + + ------- MODULE ?C?UIDIV + C:0357H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + BL51 BANKED LINKER/LOCATER V6.22.2.0 02/02/2024 22:27:49 PAGE 24 + + + + ------- MODULE ?C?LNEG + C:03ACH PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_BEEP?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_RELAY?LED + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_SET_RTC?DS1302 + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_READ_RTC?DS1302 + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC + +Program Size: data=104.4 xdata=0 code=3633 +LINK/LOCATE RUN COMPLETE. 6 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Init.obj b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Init.obj new file mode 100644 index 0000000..30e7b03 Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Init.obj differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Key.obj b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Key.obj new file mode 100644 index 0000000..d871a24 Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Key.obj differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Led.obj b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Led.obj new file mode 100644 index 0000000..bce2772 Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Led.obj differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Seg.obj b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Seg.obj new file mode 100644 index 0000000..539e0d4 Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Seg.obj differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Uart.obj b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Uart.obj new file mode 100644 index 0000000..22f63e6 Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/Uart.obj differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/ds1302.obj b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/ds1302.obj new file mode 100644 index 0000000..95e5bfa Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/ds1302.obj differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/iic.obj b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/iic.obj new file mode 100644 index 0000000..a088d52 Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/iic.obj differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/main.obj b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/main.obj new file mode 100644 index 0000000..6052afd Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/main.obj differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/onewire.obj b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/onewire.obj new file mode 100644 index 0000000..7468535 Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/onewire.obj differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/ultrasound.obj b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/ultrasound.obj new file mode 100644 index 0000000..7f1ab6e Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/ultrasound.obj differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan new file mode 100644 index 0000000..6ddcb2a Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan differ diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan.build_log.htm b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..3b226dc --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan.build_log.htm @@ -0,0 +1,56 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 + Target DLL: VDM51.DLL +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\blue-bridge-cup-learning\ʮ\ʮ\User\zuolan.uvproj +Project File Date: 02/02/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling ds1302.c... +compiling iic.c... +compiling onewire.c... +compiling ultrasound.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_BEEP?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_RELAY?LED +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_SET_RTC?DS1302 +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_READ_RTC?DS1302 +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_WRITE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_EEPROM_READ?IIC +Program Size: data=104.4 xdata=0 code=3633 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 6 Warning(s). +
+ + diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan.hex b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan.hex new file mode 100644 index 0000000..e67ac78 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan.hex @@ -0,0 +1,285 @@ +:10000300082D0A0A0A0A0A0A0A0A0825000000003B +:100013000000000008440000000000000000023E51 +:0A0023002328024D00280240003C93 +:100CD500E4FFEFC3940874809480501574442FF892 +:100CE500E4F6742D2FF8760A74252FF8E4F60F80B4 +:010CF500E11D +:010CF60022DB +:10063A00E53860030207B075380112090E8F21E50B +:10064A00236521FF5521F522E521F45FF524852153 +:10065A0023E5226404700E0542E5425403F542E4A0 +:10066A00F537120CD5E54264037014E5226405706F +:10067A000E0537E53775F0038485F037120CD5AFD0 +:10068A00227E00EF64067078E54224FD600D047056 +:10069A006FA202B39202E4F52A8065E53714602658 +:1006AA0014604124027059E53F24F4FDE53E34010B +:1006BA00FCD3ED94E0EC942E40067C037DE88000A8 +:1006CA008C3E8D3F803AE54E240AFDE4354DFCD33D +:1006DA00ED943CEC940040067C007D0A80008C4D31 +:1006EA008D4E801CE541240AFDE43540FCD3ED948F +:1006FA0078EC940040067C007D0A80008C408D4195 +:10070A00EF64074E707BE54224FD600E240370718E +:10071A00A201B39201E4F52B8067E5371460261431 +:10072A0060422402705BE53F240CFFE53E34FEFE86 +:10073A00C3EF94E8EE940350067E2E7FE080008E8D +:10074A003E8F3F803CE54E24F6FFE54D34FFFEC365 +:10075A00EF940AEE940050067E007F3C80008E4D96 +:10076A008F4E801DE54124F6FFE54034FFFEC3EFBE +:10077A00940AEE940050067E007F7880008E408FA7 +:10078A0041E5226407700AE54264017004D20080E0 +:10079A0002C200E5246407700DC3E55094E8E54FF2 +:0607AA0094034002C200AE +:0107B0002226 +:1003BA00E53645356003020639F5357536017F03A2 +:1003CA00120C46AC07E4120216E4FBFA794C7842A6 +:1003DA0012016FE4FBFA79A0784112006612024A10 +:1003EA008F4C120AFD8F43D3E54C9450748094804D +:1003FA0040047FFF8031C3E54C954EE4954D50048F +:10040A007F338023C37450954CFFE49400FE7C0034 +:10041A007DCC120345C37450954EFDE4954DFC12F4 +:10042A000357C374FF9FFF120D96E542147003022F +:10043A00055E1470030205721470030205C02403DA +:10044A006003020639752D0B2001030204DAAE3966 +:10045A00AF3A7C007D641203578F67EFFB7C277DE0 +:10046A00107E001203577C007D0A1203578D307CE0 +:10047A00037DE8AF037E001203577C007D0A120356 +:10048A00578D31E56775F0648475F00A8485F0321A +:10049A00E56775F00A8475F00A8485F033E56775B7 +:1004AA00F00A8485F034752B01756803C3E56894F6 +:1004BA0006748094804003020639742D2568F8E694 +:1004CA006003020639742D2568F8760A056880DC0F +:1004DA00AE39AF3A7C277D101203577C007D0A1291 +:1004EA0003578D30AE39AF3A7C037DE81203577C4F +:1004FA00007D0A1203578D31AE39AF3A7C007D6414 +:10050A001203577C007D0A1203578D32AE39AF3A77 +:10051A007C007D0A1203577C007D0A1203578D3333 +:10052A00AE39AF3A7C007D0A1203578D34756803E1 +:10053A00C3E5689407748094804003020639742DD9 +:10054A002568F8E66003020639742D2568F8760AEC +:10055A00056880DC752D0CE54C75F00A8475F00A87 +:10056A008485F033E54C8046752D0D300222E54333 +:10057A0075F06484F532E54375F00A8475F00A84EF +:10058A0085F033E54375F00A8485F034752A012233 +:10059A00E54375F06484FF70047F0A80008F32E5BA +:1005AA004375F00A8475F00A8485F033E54375F0E3 +:1005BA000A8485F03422752D0EE53704F52EE537C9 +:1005CA0014603414604C24027065AE3EAF3F7C0068 +:1005DA007D641203578F67E56775F06484FF7004C2 +:1005EA007F0A80008F32E56775F00A8475F00A8405 +:1005FA0085F033E567802EAE4DAF4E7C007D0A1242 +:10060A0003578F33AE4DAF4E7C007D0A1203578DD0 +:10061A003422AE40AF417C007D0A120357EF75F0D9 +:0F062A000A84F533EF75F00A8485F034752B01DF +:01063900229E +:01006200227B +:100DD600538E7F5389F0438905E4F58AF58CC28DDD +:030DE600D28C228A +:100DE900538EFB75D71875D6FC438E1043AF04D2CA +:020DF900AF2227 +:030063000207B1E0 +:1007B100C0E0C0F0C083C082C0D075D000C000C00E +:1007C10001C002C003C004C005C006C0070538E56A +:1007D10038640A7002F5380536E53670020535FFD2 +:1007E100AE35BE0109BFF406753500753600053B0F +:1007F100E53B64087002F53B053DE53D7002053CB3 +:10080100FFAE3CBE0319BFE816AF8CEFAD8AF539D8 +:10081100EDF53A758C00758A00753C00753D003028 +:1008210000190550E5507002054FC394E8E54F9457 +:1008310003400E754F037550E88006754F007550E3 +:1008410000742D253BF8E6FD7C007425253BF8E678 +:10085100FB7A00AF3B120B367444253BF8E6FD7C76 +:1008610000AF3B120AC2D007D006D005D004D00396 +:10087100D002D001D000D0D0D082D083D0F0D0E04F +:010881003244 +:0E0DFB0000007F237E337DB6DDFEDEFCDFFAD6 +:010E090022C6 +:100D4B00120B6D120DFB120CF7120DD6120DE912D0 +:0A0D5B00063A1203BA12006280F596 +:10002D000151000152FF0153000154FF0155000120 +:02003D0056FF6C +:100AC200ED4C600FA8077401088002C333D8FC42C2 +:100AD20051800EA8077401088002C333D8FCF45277 +:100AE20051E55165526013E551F4F580E5A0541FBC +:0A0AF2004480F5A053A01F85515267 +:010AFC0022D7 +:100C6C00EF600543534080035353BFE55365546015 +:100C7C0011855380E5A0541F44A0F5A053A01F85F7 +:020C8C005354BF +:010C8E002243 +:100C8F00EF600543551080035355EFE555655660EA +:100C9F0011855580E5A0541F44A0F5A053A01F85D2 +:020CAF00555698 +:010CB1002220 +:10003F000F08C0F9A4B0999282F88090FF8E89883A +:0B004F008C08170102040810204080FC +:100B36007580FFE5A0541F44E0F5A074172FF8E672 +:100B4600F580E5A0541F44C0F5A053A01F74082DDE +:100B5600F8E6F580EB4A600353807FE5A0541F4416 +:070B6600E0F5A053A01F22DF +:10090E00E4FFC2C4D2C2D2B5D2B420B3027F042057 +:10091E00B2027F0520B1027F0620B0027F07D2C44B +:10092E00C2C2D2B5D2B420B3027F0820B2027F0970 +:10093E0020B1027F0A20B0027F0BD2C4D2C2C2B550 +:10094E00D2B420B3027F0C20B2027F0D20B1027F01 +:10095E000E20B0027F0FD2C4D2C2D2B5C2B420B321 +:10096E00027F1020B2027F1120B1027F1220B0024E +:02097E007F13E5 +:010980002254 +:100CF7007580FFE5A0541F4480F5A053A01FE4F5BD +:0D0D070080E5A0541F44A0F5A053A01F22BA +:100D1400E4FEEEC3940874809480500FC297EF13DE +:0B0D240092A3EFC313FFD2970E80E7ED +:010D2F0022A1 +:100DC200C29300C29700D29300120D14AF05120D08 +:040DD20014C2932292 +:100A0C00E4FDC29300C29700D29300120D14E4FFD0 +:100A1C00EFC39408748094805011C297EDC313FDFA +:100A2C0030A303430580D2970F80E5C29300C29791 +:0C0A3C0000D29700C2A300D2A300AF05B7 +:010A4800228B +:0609CE008B618A6289635F +:1009D400E4FD7F8E120DC2E4FCECC3940374809496 +:1009E40080501EEC25E0FFC374849FFFAB61AA62B4 +:1009F400A9638C827583001202E4FD120DC20C807F +:080A0400D87D807F8E020DC237 +:060BA1008B648A65896681 +:100BA700E4FCECC3940374809480501EEC25E0FFB2 +:100BB700C374859FFF120A0CAB64AA65A9668C8271 +:0A0BC700758300EF1203230C80D8A1 +:010BD1002201 +:040E1900D2A07F05DF +:080E1D0000AE071FEE70F92280 +:0F0E0A00D2A1120E19C2A17F05120E1DC2A02285 +:0C0E2500C2A1120E19D2A17F05020E1D01 +:100D7F00C2A0A20392A17F05120E1D120E19C2A0CE +:070D8F00D2A17F05020E1D39 +:0A0D3000AB07120E0A7F90120A8D25 +:100D3A00120E19A2A19203C2A07F05120E1DA203D0 +:010D4A002286 +:070A8600AB05120E0A7FA070 +:020A8D00AD07B3 +:100A8F00E4FCECC39408748094805024C2A07F05CA +:100A9F00120E1DED30E704D2A18002C2A17F051214 +:100AAF000E1DD2A0ED25E0FD7F05120E1D0C80D28C +:020ABF00C2A0D3 +:010AC1002212 +:100C2000E4FCECC39408748094805017120E19ED04 +:100C300025E0FD30A103430501C2A07F05120E1D72 +:050C40000C80DFAF0590 +:010C4500228C +:100C4600120D30AF03120A8D120D3A120E0A7F9161 +:100C5600120A8D120D3A120C20AD07D203120D7F27 +:050C6600120E25AF0590 +:010C6B002266 +:100D9600120D307F41120A8D120D3AAF03120A8DE1 +:060DA600120D3A020E25B9 +:100A49008B578A588959120A86120D3AAF03120A2E +:100A59008D120D3AAF5B155BEF601FAB570559E57A +:100A690059AA587002055814F91202CBFF120A8DBF +:0D0A7900120D3A7FC8120E1D80DA020E2504 +:100981008B5C8A5D895E120A86120D3AAF03120AE8 +:100991008D120D3A120E0A7FA1120A8D120D3AAF75 +:1009A100601560EF6024120C20AB5C055EE55EAA69 +:1009B1005D7002055D14F9EF120311E5606004C278 +:0D09C100038002D203120D7F80D5020E25A7 +:040DAC007F057E0041 +:100DB0007C007D0C120345EF1FAC0670011E4C70C9 +:020DC000F62219 +:020BD200AB076F +:100BD400E4FAEAC39408748094805012C294EB132C +:100BE4009294120DACD294EBC313FB0A80E47F05FC +:050BF4007E00020DB0BF +:100CB200E4FAEAC39408748094805014C294EBC39B +:100CC20013FBD294309403430380120DAC0A80E2EA +:020CD200AF036E +:010CD40022FD +:100BF900C203D2947F0C7E00120DB0C2947F507E46 +:100C090000120DB0D2947F0A7E00120DB0A2949208 +:060C190003120DACA20362 +:010C1F0022B2 +:100B6D00120BF97FCC120BD27F44120BD2120BF960 +:100B7D007FCC120BD27FBE120BD2120CB2A9071270 +:100B8D000CB2EFAD01FCEC120211E4FBFA798078A6 +:040B9D004102016FA1 +:06005B0000007F26DFFE1D +:01006100227C +:100D6500E4FEEEC3940874809480500DD290120076 +:090D75005BC29012005B0E80E9E4 +:010D7E002252 +:100AFD0053890FE4F58BF58D120D65D28E30910370 +:100B0D00308FFAC28E208F1CAF8DEFFEAD8BEDFFB7 +:100B1D00AC06E41202117B967A43798B783C120075 +:080B2D006602024AC28F7F003C +:010B3500229D +:10006600EC4D6011E8497017ED33EC3304600DE494 +:10007600FCFFFEFD22E933E8330470F80202B612F3 +:10008600028158046009E4CC2481500628500902F4 +:1000960002C02840030202BDC0E0EB4A7044B980AA +:1000A60006D0E0FB0202ACEF4E701CBD8008EBFFF1 +:1000B600EAFEE9FD80EBE98DF0A4FEE5F002014FD2 +:1000C600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE8975 +:1000D600F0A42EFFE435F0CD89F0A42DFEE435F032 +:1000E6008067EF4E7005BD80D780C3EF8BF0A4AC60 +:1000F600F0EE8BF0A42CFCE435F0F8EF8AF0A42C9B +:10010600E5F038FCE433CB8DF0A42CFCE5F03BF8AD +:10011600EE8AF0A42CFCE5F038F8E433CF89F0A49D +:100126002CFCE5F038CF3400CE89F0A42FFFE5F0A3 +:100136003EFEE433C98DF0A42EFEE5F039CD8AF0FB +:10014600A42FFFE5F03EFEE43DFD33D0E0FB500773 +:100156000BBB000F0202C0EC2CFCEF33FFEE33FEAC +:06016600ED33FD020298DA +:10016C000202C0EC5D046005E8590470030202B69B +:10017C00120281580460F6EC4860F2EC7004FDFE4B +:10018C00FF22C860DB2481C85009C3986002500666 +:10019C000202BD9850CAF582E9294B4A7005AB8220 +:1001AC000202AC75F0007C1A7880C3EF9BEE9AEDDE +:1001BC0099400DC3EF9BFFEE9AFEED99FDE842F0DE +:1001CC00DC23ACF0D0E0FFD0E0FED0E0FDAB822031 +:1001DC00E7101BEB60BAEC2CFCEF33FFEE33FEEDBB +:1001EC0033FD020298E803F830E705C0F075F00023 +:1001FC00EF2FFFEE33FEED33FD40B830E7C280AA9F +:10020C0075F020800E75F010800575F0087D007E6D +:10021C00007F003392D530D5031203ACEC33401081 +:10022C00EF33FFEE33FEED33FDEC33FCD5F0ED2276 +:0E023C00E5F0247EA2D513CC92E7CDCEFF22B2 +:10024A00EDD2E7CD33EC3392D524814006E4FFFEAC +:10025A00FDFC22FCE4CFCECDCC24E0501174FF800B +:10026A00EDC3CC13CCCD13CDCE13CECF13CF0470A8 +:07027A00F030D5DE0203ACF9 +:10028100E9D2E7C933E833F892D5EDD2E7CD33ECC3 +:0702910033FC5002B2D5223C +:10029800EC30E7100FBF000C0EBE00080DBD0004C7 +:1002A8000BEB6014A2D5EB13FCED92E7FD2274FF73 +:1002B800FCFDFEFF22E480F8A2D574FF13FC7D80CC +:0302C800E480EFE0 +:0300000002088271 +:0C088200787FE4F6D8FD7581680208C993 +:1002CB00BB010689828A83E0225002E722BBFE0231 +:0902DB00E32289828A83E4932264 +:1002E400BB010CE58229F582E5833AF583E02250CF +:1002F40006E92582F8E622BBFE06E92582F8E22219 +:0D030400E58229F582E5833AF583E4932232 +:10031100BB010689828A83F0225002F722BBFE01CB +:02032100F322C5 +:10032300F8BB010DE58229F582E5833AF583E8F010 +:10033300225006E92582C8F622BBFE05E92582C8BC +:02034300F222A4 +:10034500EF8DF0A4A8F0CF8CF0A428CE8DF0A42ECC +:02035500FE2286 +:10035700BC000BBE0029EF8DF084FFADF022E4CC8A +:10036700F875F008EF2FFFEE33FEEC33FCEE9DEC53 +:10037700984005FCEE9DFE0FD5F0E9E4CEFD22ED99 +:10038700F8F5F0EE8420D21CFEADF075F008EF2FE3 +:10039700FFED33FD4007985006D5F0F222C398FDD4 +:0503A7000FD5F0EA2271 +:0E03AC00C3E49FFFE49EFEE49DFDE49CFC2262 +:10088E00020D4BE493A3F8E493A34003F68001F228 +:10089E0008DFF48029E493A3F85407240CC8C3336B +:1008AE00C4540F4420C8834004F456800146F6DF3A +:1008BE00E4800B0102040810204080900003E47EC7 +:1008CE00019360BCA3FF543F30E509541FFEE4932F +:1008DE00A360010ECF54C025E060A840B8E493A3F6 +:1008EE00FAE493A3F8E493A3C8C582C8CAC583CA21 +:1008FE00F0A3C8C582C8CAC583CADFE9DEE780BED9 +:01005A0000A5 +:00000001FF diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan.lnp b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan.lnp new file mode 100644 index 0000000..e3c9e8d --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/Objects/zuolan.lnp @@ -0,0 +1,11 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\ds1302.obj", +".\Objects\iic.obj", +".\Objects\onewire.obj", +".\Objects\ultrasound.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/main.c b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/main.c new file mode 100644 index 0000000..c5c027b --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/main.c @@ -0,0 +1,384 @@ +#include "main.h" +/* */ +uchar Key_Slow_Down; // רñ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾݴ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Сݴ +uchar Seg_Pos; // ɨרñ +uint Seg_Slow_Down; // ܼרñ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Ledʾݴ + +uchar Seg_show_mode; // ʾ 0Ƶ 1ʪ 2 3 +uchar celi_mode; // 0Ƶ 1ʪ 2 +/*ʱ*/ +uint time_1s; +uint time_up_1s; +uchar time_100ms; +uchar pwn_count; +/**/ +uint freq; +uchar humidity; +uchar distance; + +uint freq_demo = 9000; +uint humidity_demo = 40; +uint dis_demo = 60; +bit dis_flag; // 0Ϊcm1Ϊm +bit freq_flag; // 0ΪHz1ΪkHz + +bit reset_relay_flag; +uchar relay_count; +bit light_flag; +void init_Seg_LED() // ʼܺLED +{ + uchar i; + for (i = 0; i < 8; i++) + { + ucLed[i] = 0; + Seg_Buf[i] = 10; + Seg_Point[i] = 0; + } +} + +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Old, Key_Up; // רñ + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; // ̼ٳ + + Key_Val = Key_Read(); // ʵʱȡֵ + Key_Down = Key_Val & (Key_Old ^ Key_Val); // ׽½ + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); // ׽Ͻ + Key_Old = Key_Val; // ɨ + if (Key_Down == 4) + { + Seg_show_mode = (++Seg_show_mode) % 4; + celi_mode = 0; + init_Seg_LED(); + } + if (Seg_show_mode == 3 && Key_Down == 5) + { + celi_mode = (++celi_mode) % 3; + init_Seg_LED(); + } + if (Key_Down == 6) + { + switch (Seg_show_mode) + { + case 2: + dis_flag ^= 1; + Seg_Point[5] = 0; + break; + case 3: + /* */ + switch (celi_mode) + { + case 0: + /* Ƶʲ */ + freq_demo = (freq_demo + 500 > 12000) ? 1000 : freq_demo + 500; + break; + case 1: + /*ʪȲ*/ + humidity_demo = (humidity_demo + 10 > 60) ? 10 : humidity_demo + 10; + break; + case 2: + /**/ + dis_demo = (dis_demo + 10 > 120) ? 10 : dis_demo + 10; + break; + } + break; + } + } + if (Key_Down == 7) + { + switch (Seg_show_mode) + { + case 0: + /* Ƶʾ */ + freq_flag ^= 1; + Seg_Point[6] = 0; + break; + case 3: + /* */ + switch (celi_mode) + { + case 0: + /* Ƶʲ */ + freq_demo = (freq_demo - 500 < 1000) ? 12000 : freq_demo - 500; + break; + case 1: + /*ʪȲ*/ + humidity_demo = (humidity_demo - 10 < 10) ? 60 : humidity_demo - 10; + break; + case 2: + /**/ + dis_demo = (dis_demo - 10 < 10) ? 120 : dis_demo - 10; + break; + } + break; + } + } + if (Key_Down == 7 && Seg_show_mode == 1) + reset_relay_flag = 1; // ¿ʼʱ + else + reset_relay_flag = 0; + // ̧ + if (Key_Up == 7 && time_up_1s >= 1000) + reset_relay_flag = 0; +} + +/* Ϣ */ +void Seg_Proc() +{ + uchar temp_freq, i, temp_dis; + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; // ܼٳ + humidity = Ad_Read(0x03) / 51.0 * 20; + /*ʪȴ*/ + if (humidity > 80) + Da_Write(255); + else if (humidity < humidity_demo) + Da_Write(51); + else + Da_Write(255 - 204 * (80 - humidity) / (80 - humidity_demo)); + /*ദ*/ + distance = Ut_Wave_Data(); + if (distance > dis_demo) + { + Relay(1); + relay_count++; + EEPROM_Write(&relay_count, 0, 1); + } + else + { + Relay(0); + } + switch (Seg_show_mode) + { + case 0: + /* Ƶʾ */ + Seg_Buf[0] = 11; // F + // KHz + if (freq_flag) + { + temp_freq = freq / 100; + Seg_Buf[3] = temp_freq / 10000 % 10; + Seg_Buf[4] = temp_freq / 1000 % 10; + Seg_Buf[5] = temp_freq / 100 % 10; + Seg_Buf[6] = temp_freq / 10 % 10; + Seg_Buf[7] = temp_freq % 10; + Seg_Point[6] = 1; + for (i = 3; i < 6; i++) + { + if (Seg_Buf[i] == 0) + Seg_Buf[i] = 10; + else + break; + } + } + // Hz + else + { + Seg_Buf[3] = freq / 10000 % 10; + Seg_Buf[4] = freq / 1000 % 10; + Seg_Buf[5] = freq / 100 % 10; + Seg_Buf[6] = freq / 10 % 10; + Seg_Buf[7] = freq % 10; + for (i = 3; i < 7; i++) + { + if (Seg_Buf[i] == 0) + Seg_Buf[i] = 10; + else + break; + } + } + break; + case 1: + /*ʪʾ*/ + Seg_Buf[0] = 12; // H + Seg_Buf[6] = humidity / 10 % 10; + Seg_Buf[7] = humidity % 10; + break; + case 2: + /**/ + Seg_Buf[0] = 13; // A + if (dis_flag) + { + Seg_Buf[5] = distance / 100; + Seg_Buf[6] = distance / 10 % 10; + Seg_Buf[7] = distance % 10; + Seg_Point[5] = 1; + } + else + { + Seg_Buf[5] = (distance / 100 == 0) ? 10 : distance / 100; + Seg_Buf[6] = distance / 10 % 10; + Seg_Buf[7] = distance % 10; + } + + break; + case 3: + /**/ + Seg_Buf[0] = 14; // P + Seg_Buf[1] = celi_mode + 1; + switch (celi_mode) + { + case 0: + /* Ƶ */ + temp_freq = freq_demo / 100; + Seg_Buf[5] = (temp_freq / 100 == 0) ? 10 : temp_freq / 100; + Seg_Buf[6] = temp_freq / 10 % 10; + Seg_Buf[7] = temp_freq % 10; + Seg_Point[6] = 1; + break; + case 1: + /* ʪ */ + Seg_Buf[6] = humidity_demo / 10; + Seg_Buf[7] = humidity_demo % 10; + break; + case 2: + /* */ + temp_dis = dis_demo / 10; + Seg_Buf[6] = temp_dis / 10; + Seg_Buf[7] = temp_dis % 10; + Seg_Point[6] = 1; + break; + } + break; + } +} + +/* ʾ */ +void Led_Proc() +{ + + switch (Seg_show_mode) + { + case 0: + ucLed[0] = 1; + break; + case 1: + ucLed[1] = 1; + break; + case 2: + ucLed[2] = 1; + break; + case 3: + ucLed[0] = (celi_mode == 0) ? light_flag : 0; + ucLed[1] = (celi_mode == 1) ? light_flag : 0; + ucLed[2] = (celi_mode == 2) ? light_flag : 0; + break; + } + ucLed[3] = (freq > freq_demo); + ucLed[4] = (humidity > humidity_demo); + ucLed[5] = (distance > dis_demo); +} + +/* ʱ0жϳʼ */ +void Timer0Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TMOD |= 0x05; // öʱ0Ϊ16λ + TL0 = 0; // öʱʼֵ + TH0 = 0; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ +} + +void Timer2_Init(void) // 1@12.000MHz +{ + AUXR &= 0xFB; // ʱʱ12Tģʽ + T2L = 0x18; // öʱʼֵ + T2H = 0xFC; // öʱʼֵ + AUXR |= 0x10; // ʱ2ʼʱ + IE2 |= 0x04; // ʱ2ж + EA = 1; // жϴ +} +void Timer3_Init(void) // 100΢@12.000MHz +{ + T4T3M &= 0xFD; // ʱʱ12Tģʽ + T3L = 0x9C; // öʱʼֵ + T3H = 0xFF; // öʱʼֵ + T4T3M |= 0x08; // ʱ3ʼʱ + IE2 |= 0x20; // ʱ3ж + EA = 1; // жϴ +} + +/* ʱ2жϷ */ +void Timer2Server() interrupt 12 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; // ̼ר + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; // ܼר + if (++Seg_Pos == 8) + Seg_Pos = 0; // ʾר + if (++time_1s == 1000) + { + freq = TH0 << 8 | TL0; + TH0 = 0; + TL0 = 0; + time_1s = 0; + } + if (reset_relay_flag) + { + if (++time_up_1s >= 1000) + { + time_up_1s = 1000; + } + } + else + { + time_up_1s = 0; + } + if (++time_100ms == 100) + light_flag ^= 1; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} +void Timer3Server() interrupt 19 +{ + if (++pwn_count == 10) + pwn_count = 0; + if (freq > freq_demo) + MOTOR(pwn_count <= 8); + else + MOTOR(pwn_count <= 2); +} +void Delay750ms() //@12MHz +{ + unsigned char i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} + +/* Main */ +void main() +{ + System_Init(); + EEPROM_Read(&relay_count, 0, 1); + Timer0Init(); + Timer2_Init(); + Timer3_Init(); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/main.h b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/main.h new file mode 100644 index 0000000..3f72b5d --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/main.h @@ -0,0 +1,15 @@ +/* 头文件声明区 */ +#include //单片机寄存器专用头文件 +#include //初始化底层驱动专用头文件 +#include //Led底层驱动专用头文件 +#include //按键底层驱动专用头文件 +#include //数码管底层驱动专用头文件 +#include //标准库底层驱动专用头文件 +#include //温度传感器底层驱动 +#include //ds1302底层驱动专用头文件 +#include //IIC底层驱动专用头文件 +#include //超声波 +#include +#include +#define uchar unsigned char +#define uint unsigned int diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/zuolan.uvgui.haze b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/zuolan.uvgui.haze new file mode 100644 index 0000000..29e565e --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/zuolan.uvgui.haze @@ -0,0 +1,1378 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -32000 + -32000 + + + -1 + -1 + + + 223 + 240 + 1432 + 1037 + + + + 0 + + 457 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000010000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF54433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CB5DACAAEC8FDBDECB9FAC8FC5CB5DACAAEC8FDBDECB9FAC8FC5C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF54433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CB5DACAAEC8FDBDECB9FAC8FC5CB5DACAAEC8FDBDECB9FAC8FC5C557365725C6D61696E2E6800000000066D61696E2E6800000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000094010000660000000006000036020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100006600000070040000D3000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000370200000006000006030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000003A020000FD050000ED020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000060300000006000019030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100006600000070040000D3000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200006600000070040000B7010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100001F020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000009001000036020000000000004F000000900100001F0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000A701000070040000280200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000001F020000000600002302000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000003A020000000600001D030000000000002302000000060000060300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2076 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000094B65795F636F756E7496000000000000000400094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E676500000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 1 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 0 + 1 + 31 + 1 + + 0 + + + main.h + 39 + 1 + 2 + 1 + + 0 + + + + +
diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/zuolan.uvopt b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/zuolan.uvopt new file mode 100644 index 0000000..d9acf7b --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/zuolan.uvopt @@ -0,0 +1,284 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + -1 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\ds1302.c + ds1302.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + 2 + 9 + 1 + 0 + 0 + 0 + 0 + ..\Driver\ultrasound.c + ultrasound.c + 0 + 0 + + + +
diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/zuolan.uvproj b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/zuolan.uvproj new file mode 100644 index 0000000..4b5bd01 --- /dev/null +++ b/题目/真题/13 第十三届国赛_左岚/第十三届国赛/User/zuolan.uvproj @@ -0,0 +1,420 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + ds1302.c + 1 + ..\Driver\ds1302.c + + + iic.c + 1 + ..\Driver\iic.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + ultrasound.c + 1 + ..\Driver\ultrasound.c + + + + + + + +
diff --git a/题目/真题/13 第十三届国赛_左岚/第十三届国赛题.jpg b/题目/真题/13 第十三届国赛_左岚/第十三届国赛题.jpg new file mode 100644 index 0000000..7fb56bc Binary files /dev/null and b/题目/真题/13 第十三届国赛_左岚/第十三届国赛题.jpg differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第13届省赛第一次-DS18B20与DS1302.pdf b/题目/真题/13 第十三届省赛_左岚/第一套/第13届省赛第一次-DS18B20与DS1302.pdf new file mode 100644 index 0000000..827d953 Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第13届省赛第一次-DS18B20与DS1302.pdf differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛.png b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛.png new file mode 100644 index 0000000..7745a15 Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛.png differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/.vscode/settings.json b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/.vscode/settings.json new file mode 100644 index 0000000..8d4fdb6 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/.vscode/settings.json @@ -0,0 +1,17 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "key.h": "c", + "led.h": "c" + } +} \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Init.c b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Init.h b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Key.c b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Key.h b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Led.c b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Led.c new file mode 100644 index 0000000..0a39c96 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Led.c @@ -0,0 +1,39 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Led.h b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Led.h new file mode 100644 index 0000000..5756647 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Led.h @@ -0,0 +1,3 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Relay(bit enable); \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Seg.c b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Seg.c new file mode 100644 index 0000000..231e572 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Seg.c @@ -0,0 +1,24 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 U - +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0xc1, 0xbf}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Seg.h b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/ds1302.c b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/ds1302.c new file mode 100644 index 0000000..9458779 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/ds1302.c @@ -0,0 +1,83 @@ +/* # DS1302代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "ds1302.h" +#include "REG52.H" +#include "intrins.h" +sbit SCK = P1 ^ 7; +sbit SDA = P2 ^ 3; +sbit RST = P1 ^ 3; +// +void Write_Ds1302(unsigned char temp) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + SCK = 0; + SDA = temp & 0x01; + temp >>= 1; + SCK = 1; + } +} + +// +void Write_Ds1302_Byte(unsigned char address, unsigned char dat) +{ + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST = 0; +} + +// +unsigned char Read_Ds1302_Byte(unsigned char address) +{ + unsigned char i, temp = 0x00; + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + for (i = 0; i < 8; i++) + { + SCK = 0; + temp >>= 1; + if (SDA) + temp |= 0x80; + SCK = 1; + } + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + SCK = 1; + _nop_(); + SDA = 0; + _nop_(); + SDA = 1; + _nop_(); + return (temp); +} +void Set_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + for (i = 0; i < 3; i++) + Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 +} +void Read_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + for (i = 0; i < 3; i++) + ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); +} \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/ds1302.h b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/ds1302.h new file mode 100644 index 0000000..e8bfdf4 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/ds1302.h @@ -0,0 +1,2 @@ +void Set_Rtc(unsigned char *ucRtc); +void Read_Rtc(unsigned char *ucRtc); \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/onewire.c b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/onewire.c new file mode 100644 index 0000000..d00f0e8 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/onewire.c @@ -0,0 +1,85 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "REG52.H" +sbit DQ = P1 ^ 4; // 单总线数据口 +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0x44); // 启动温度转换 + + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0xbe); // 读取温度值 + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/onewire.h b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/Driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Init.lst b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Init.lst new file mode 100644 index 0000000..7119d9f --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 03/04/2024 18:56:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Key.lst b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Key.lst new file mode 100644 index 0000000..091dfcd --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 03/04/2024 18:56:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 03/04/2024 18:56:10 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Led.lst b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Led.lst new file mode 100644 index 0000000..3145251 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Led.lst @@ -0,0 +1,63 @@ +C51 COMPILER V9.59.0.0 LED 03/04/2024 18:56:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief ̵ + 23 /// @param enable 0 1 + 24 void Relay(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x10; + 30 1 else + 31 1 temp &= ~(0x10); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 93 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 4 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Seg.lst b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Seg.lst new file mode 100644 index 0000000..0c24aaf --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Seg.lst @@ -0,0 +1,48 @@ +C51 COMPILER V9.59.0.0 SEG 03/04/2024 18:56:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 U - + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0xc1, 0xbf}; + 5 // λѡ + 6 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 8 { + 9 1 // ֶ + 10 1 P0 = 0xff; + 11 1 P2 = P2 & 0x1f | 0xe0; + 12 1 + 13 1 // ѡʾλ + 14 1 P0 = seg_wela[wela]; + 15 1 P2 = P2 & 0x1f | 0xc0; + 16 1 P2 &= 0x1f; + 17 1 + 18 1 // ѡʾ + 19 1 P0 = seg_dula[dula]; + 20 1 if (point) + 21 1 P0 &= 0x7f; + 22 1 P2 = P2 & 0x1f | 0xe0; + 23 1 P2 &= 0x1f; + 24 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 21 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Uart.lst b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Ultrasonic.lst b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/ds1302.lst b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/ds1302.lst new file mode 100644 index 0000000..08d69d8 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 03/04/2024 18:56:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 03/04/2024 18:56:10 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/iic.lst b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/iic.lst new file mode 100644 index 0000000..5e92d65 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 03/04/2024 18:53:29 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 03/04/2024 18:53:29 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 03/04/2024 18:53:29 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 03/04/2024 18:53:29 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/main.lst b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/main.lst new file mode 100644 index 0000000..488c521 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/main.lst @@ -0,0 +1,261 @@ +C51 COMPILER V9.59.0.0 MAIN 03/04/2024 18:56:10 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ʱ䷽ */ + 12 uchar ucRtc[3] = {0x13, 0x11, 0x11}; // ʼʱ13:11:11 + 13 + 14 /* ̷ */ + 15 uchar Key_Slow_Down; + 16 + 17 /* ʾ */ + 18 uchar Seg_show_mode; // 0 ¶ 1 ʱ 2 + 19 bit Control_mode; // ģʽ 0 ¶ 1 ʱ + 20 bit Time_show_mode; // ʱʾģʽ 0 ʱ 1 + 21 bit Temperature_mode; // ¶ȿƵ + 22 bit Time_mode; // ʱƵ + 23 bit Time_Led; // + 24 bit Led_show; // ˸ + 25 /* */ + 26 uint Temperature_value_10x; // ¶Ȳֵ 10 + 27 uchar Temperature_para = 23; // ¶Ȳ + 28 + 29 /* ʱ */ + 30 uint time_5s; + 31 uint time_5s_led; + 32 uchar time_100ms; + 33 + 34 /* ̴ */ + 35 void Key_Proc() + 36 { + 37 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 38 1 if (Key_Slow_Down) + 39 1 return; + 40 1 Key_Slow_Down = 1; + 41 1 + 42 1 Key_Val = Key_Read(); + 43 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 44 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 45 1 Key_Old = Key_Val; + 46 1 if (Key_Down == 12) + 47 1 Seg_show_mode = (++Seg_show_mode) % 3; + 48 1 if (Key_Down == 13) + 49 1 Control_mode ^= 1; + 50 1 if (Seg_show_mode == 2) + 51 1 { + 52 2 if (Key_Down == 16) + 53 2 Temperature_para = (++Temperature_para > 99) ? 99 : Temperature_para; + 54 2 if (Key_Down == 17) + C51 COMPILER V9.59.0.0 MAIN 03/04/2024 18:56:10 PAGE 2 + + 55 2 Temperature_para = (--Temperature_para < 10) ? 10 : Temperature_para; + 56 2 } + 57 1 if (Seg_show_mode == 2) + 58 1 { + 59 2 if (Key_Old == 17) + 60 2 Time_show_mode = 1; + 61 2 if (Key_Up == 17) + 62 2 Time_show_mode = 0; + 63 2 } + 64 1 } + 65 /* ܴ */ + 66 void Seg_Proc() + 67 { + 68 1 if (Seg_Slow_Down) + 69 1 return; + 70 1 Seg_Slow_Down = 1; + 71 1 Seg_Buf[0] = 11; // U + 72 1 Seg_Buf[1] = Seg_show_mode + 1; + 73 1 Read_Rtc(ucRtc); + 74 1 Temperature_value_10x = rd_temperature() * 10; + 75 1 switch (Seg_show_mode) + 76 1 { + 77 2 case 0: + 78 2 /* ¶ */ + 79 2 Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 80 2 Seg_Buf[5] = Temperature_value_10x / 100 % 10; + 81 2 Seg_Buf[6] = Temperature_value_10x / 10 % 10; + 82 2 Seg_Buf[7] = Temperature_value_10x % 10; + 83 2 Seg_Point[6] = 1; + 84 2 break; + 85 2 case 1: + 86 2 /* ʱ */ + 87 2 + 88 2 Seg_Buf[2] = 10; + 89 2 Seg_Buf[3] = Time_show_mode ? ucRtc[1] / 16 : ucRtc[0] / 16; + 90 2 Seg_Buf[4] = Time_show_mode ? ucRtc[1] % 16 : ucRtc[0] % 16; + 91 2 Seg_Buf[5] = 12; //- + 92 2 Seg_Buf[6] = Time_show_mode ? ucRtc[2] / 16 : ucRtc[1] / 16; + 93 2 Seg_Buf[7] = Time_show_mode ? ucRtc[2] % 16 : ucRtc[1] % 16; + 94 2 Seg_Point[6] = 0; + 95 2 break; + 96 2 case 2: + 97 2 /* */ + 98 2 Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + 99 2 Seg_Buf[6] = Temperature_para / 10 % 10; + 100 2 Seg_Buf[7] = Temperature_para % 10; + 101 2 Seg_Point[6] = 0; + 102 2 break; + 103 2 } + 104 1 } + 105 + 106 /* LED */ + 107 void Led_Proc() + 108 { + 109 1 // ʱ + 110 1 if (Control_mode) + 111 1 { + 112 2 Temperature_mode = 0; // ر¶ȱͻȻлbug + 113 2 // ֺͬʱ0x00ʱ + 114 2 if ((ucRtc[1] || ucRtc[2]) == 0) + 115 2 Time_mode = 1; // ״̬ + 116 2 } + C51 COMPILER V9.59.0.0 MAIN 03/04/2024 18:56:10 PAGE 3 + + 117 1 // ¶ȿ + 118 1 else + 119 1 { + 120 2 Time_mode = 0; // ر״̬ͻȻлbug + 121 2 if (Temperature_value_10x >= Temperature_para * 10) + 122 2 Temperature_mode = 1; // ¶ȱ + 123 2 else + 124 2 Temperature_mode = 0; // ¶ + 125 2 } + 126 1 Relay(Temperature_mode || Time_mode); // ¶ȱ״̬ʱ + 127 1 + 128 1 // ֺͬʱ0x00ʱ + 129 1 if ((ucRtc[1] || ucRtc[2]) == 0) + 130 1 Time_Led = 1; + 131 1 ucLed[0] = Time_Led; // LED5s + 132 1 ucLed[1] = (Control_mode == 0); + 133 1 ucLed[2] = Led_show; + 134 1 } + 135 + 136 /* ʱ0жϳʼ */ + 137 void Timer0_Init(void) // 1@12.000MHz + 138 { + 139 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 140 1 TMOD &= 0xF0; // öʱģʽ + 141 1 TL0 = 0x18; // öʱʼֵ + 142 1 TH0 = 0xFC; // öʱʼֵ + 143 1 TF0 = 0; // TF0־ + 144 1 TR0 = 1; // ʱ0ʼʱ + 145 1 ET0 = 1; + 146 1 EA = 1; + 147 1 } + 148 + 149 /* ʱ0жϺ */ + 150 void Timer0_ISR(void) interrupt 1 + 151 { + 152 1 if (++Key_Slow_Down == 10) + 153 1 Key_Slow_Down = 0; + 154 1 if (++Seg_Slow_Down == 500) + 155 1 Seg_Slow_Down = 0; + 156 1 if (++Seg_Pos == 8) + 157 1 Seg_Pos = 0; + 158 1 if (Time_mode) + 159 1 { + 160 2 if (++time_5s == 5000) + 161 2 { + 162 3 time_5s = 0; + 163 3 Time_mode = 0; + 164 3 } + 165 2 } + 166 1 // ʱûпƵʱʱΪ0 + 167 1 else + 168 1 { + 169 2 time_5s = 0; + 170 2 } + 171 1 + 172 1 if (Time_Led) + 173 1 { + 174 2 if (++time_5s_led == 5000) + 175 2 { + 176 3 time_5s_led = 0; + 177 3 Time_mode = 0; + 178 3 } + C51 COMPILER V9.59.0.0 MAIN 03/04/2024 18:56:10 PAGE 4 + + 179 2 } + 180 1 + 181 1 if (Temperature_mode || Time_mode) + 182 1 { + 183 2 if (++time_100ms == 100) + 184 2 { + 185 3 time_100ms = 0; + 186 3 Led_show ^= 1; + 187 3 } + 188 2 } + 189 1 else + 190 1 { + 191 2 time_100ms = 0; + 192 2 Led_show = 0; + 193 2 } + 194 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 195 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 196 1 } + 197 + 198 void Delay750ms(void) //@12.000MHz + 199 { + 200 1 unsigned char data i, j, k; + 201 1 + 202 1 _nop_(); + 203 1 _nop_(); + 204 1 i = 35; + 205 1 j = 51; + 206 1 k = 182; + 207 1 do + 208 1 { + 209 2 do + 210 2 { + 211 3 while (--k) + 212 3 ; + 213 3 } while (--j); + 214 2 } while (--i); + 215 1 } + 216 void main() + 217 { + 218 1 System_Init(); + 219 1 Timer0_Init(); + 220 1 Set_Rtc(ucRtc); + 221 1 Delay750ms(); + 222 1 rd_temperature(); + 223 1 while (1) + 224 1 { + 225 2 Key_Proc(); + 226 2 Seg_Proc(); + 227 2 Led_Proc(); + 228 2 } + 229 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 786 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 43 ---- + IDATA SIZE = ---- ---- + BIT SIZE = 6 ---- +END OF MODULE INFORMATION. + + C51 COMPILER V9.59.0.0 MAIN 03/04/2024 18:56:10 PAGE 5 + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/onewire.lst b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/onewire.lst new file mode 100644 index 0000000..87c502e --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 03/04/2024 18:56:11 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 03/04/2024 18:56:11 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/zuolan.m51 b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/zuolan.m51 new file mode 100644 index 0000000..9febe21 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Listings/zuolan.m51 @@ -0,0 +1,905 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\ds1302.obj, .\Objects\onewire.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\ds1302.obj (DS1302) + .\Objects\onewire.obj (ONEWIRE) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0015H UNIT ?DT?SEG + DATA 001DH 0003H UNIT _DATA_GROUP_ + BIT 0020H.0 0000H.6 UNIT ?BI?MAIN + BIT 0020H.6 0000H.1 UNIT _BIT_GROUP_ + 0020H.7 0000H.1 *** GAP *** + DATA 0021H 002BH UNIT ?DT?MAIN + DATA 004CH 0004H UNIT ?DT?LED + IDATA 0050H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + 0003H 0008H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0277H UNIT ?C?LIB_CODE + CODE 0285H 00EBH UNIT ?PR?SEG_PROC?MAIN + CODE 0370H 00D6H UNIT ?PR?TIMER0_ISR?MAIN + CODE 0446H 0096H UNIT ?PR?KEY_PROC?MAIN + CODE 04DCH 008CH UNIT ?C_C51STARTUP + CODE 0568H 007AH UNIT ?PR?KEY_READ?KEY + CODE 05E2H 0077H UNIT ?PR?LED_PROC?MAIN + CODE 0659H 004CH UNIT ?C_INITSEG + CODE 06A5H 003EH UNIT ?PR?_SET_RTC?DS1302 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 2 + + + CODE 06E3H 003DH UNIT ?PR?_READ_DS1302_BYTE?DS1302 + CODE 0720H 003AH UNIT ?PR?_LED_DISP?LED + CODE 075AH 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 0790H 0034H UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 07C4H 0031H UNIT ?PR?_READ_RTC?DS1302 + CODE 07F5H 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 081CH 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 0843H 0023H UNIT ?PR?RELAY?LED + CODE 0866H 0023H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0889H 0020H UNIT ?PR?MAIN?MAIN + CODE 08A9H 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 08C7H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 08E4H 001CH UNIT ?PR?_WRITE_DS1302?DS1302 + CODE 0900H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0915H 0014H UNIT ?PR?_WRITE_DS1302_BYTE?DS1302 + CODE 0929H 000FH UNIT ?PR?DELAY750MS?MAIN + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?_SET_RTC?DS1302 + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?_SET_RTC?DS1302 ----- ----- 001DH 0003H + +--> ?PR?_WRITE_DS1302_BYTE?DS1302 + +?PR?_WRITE_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.6 0000H.1 ----- ----- + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 3 + + + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_READ_RTC?DS1302 + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +?PR?_READ_RTC?DS1302 ----- ----- 001DH 0003H + +--> ?PR?_READ_DS1302_BYTE?DS1302 + +?PR?_READ_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?LED_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?RELAY?LED + +?PR?RELAY?LED 0020H.6 0000H.1 ----- ----- + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:0370H PUBLIC Timer0_ISR + D:0025H PUBLIC ucRtc + D:00C0H PUBLIC P4 + D:0028H PUBLIC time_100ms + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + B:0020H.0 PUBLIC Time_Led + C:05E2H PUBLIC Led_Proc + D:0029H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:0285H PUBLIC Seg_Proc + B:0020H.1 PUBLIC Time_mode + D:00B8H PUBLIC IP + D:0031H PUBLIC Temperature_para + B:0020H.2 PUBLIC Temperature_mode + D:0032H PUBLIC Seg_Buf + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 4 + + + C:0446H PUBLIC Key_Proc + D:003AH PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:0889H PUBLIC main + C:0900H PUBLIC Timer0_Init + D:003BH PUBLIC Key_Slow_Down + D:003CH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:003DH PUBLIC time_5s + B:0020H.3 PUBLIC Led_show + B:0020H.4 PUBLIC Time_show_mode + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:003FH PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + D:0040H PUBLIC time_5s_led + D:0042H PUBLIC Temperature_value_10x + B:0088H.4 PUBLIC TR0 + B:0020H.5 PUBLIC Control_mode + D:0044H PUBLIC ucLed + C:0929H PUBLIC Delay750ms + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:0446H LINE# 35 + C:0446H LINE# 36 + C:0446H LINE# 38 + C:044DH LINE# 40 + C:0450H LINE# 42 + C:0455H LINE# 43 + C:045EH LINE# 44 + C:0464H LINE# 45 + C:0467H LINE# 46 + C:0470H LINE# 47 + C:047BH LINE# 48 + C:0481H LINE# 49 + C:0486H LINE# 50 + C:048FH LINE# 51 + C:048FH LINE# 52 + C:0495H LINE# 53 + C:04AAH LINE# 54 + C:04B0H LINE# 55 + C:04C5H LINE# 56 + C:04C5H LINE# 57 + C:04CBH LINE# 58 + C:04CBH LINE# 59 + C:04D1H LINE# 60 + C:04D3H LINE# 61 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 5 + + + C:04D9H LINE# 62 + C:04DBH LINE# 63 + C:04DBH LINE# 64 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:0285H LINE# 66 + C:0285H LINE# 67 + C:0285H LINE# 68 + C:028CH LINE# 70 + C:028FH LINE# 71 + C:0292H LINE# 72 + C:0297H LINE# 73 + C:02A0H LINE# 74 + C:02B4H LINE# 75 + C:02C6H LINE# 76 + C:02C6H LINE# 77 + C:02C6H LINE# 79 + C:02CFH LINE# 80 + C:02E3H LINE# 81 + C:02F7H LINE# 82 + C:0304H LINE# 83 + C:0307H LINE# 84 + C:0308H LINE# 85 + C:0308H LINE# 88 + C:030BH LINE# 89 + C:031AH LINE# 90 + C:0328H LINE# 91 + C:032BH LINE# 92 + C:033AH LINE# 93 + C:0348H LINE# 94 + C:0348H LINE# 95 + C:034AH LINE# 96 + C:034AH LINE# 98 + C:0356H LINE# 99 + C:0363H LINE# 100 + C:036CH LINE# 101 + C:036FH LINE# 102 + C:036FH LINE# 103 + C:036FH LINE# 104 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:05E2H LINE# 107 + C:05E2H LINE# 108 + C:05E2H LINE# 110 + C:05E5H LINE# 111 + C:05E5H LINE# 112 + C:05E7H LINE# 114 + C:05FDH LINE# 115 + C:05FFH LINE# 116 + C:0601H LINE# 119 + C:0601H LINE# 120 + C:0603H LINE# 121 + C:0614H LINE# 122 + C:0618H LINE# 124 + C:061AH LINE# 125 + C:061AH LINE# 126 + C:0629H LINE# 129 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 6 + + + C:063FH LINE# 130 + C:0641H LINE# 131 + C:0647H LINE# 132 + C:0652H LINE# 133 + C:0658H LINE# 134 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:0900H LINE# 137 + C:0900H LINE# 138 + C:0900H LINE# 139 + C:0903H LINE# 140 + C:0906H LINE# 141 + C:0909H LINE# 142 + C:090CH LINE# 143 + C:090EH LINE# 144 + C:0910H LINE# 145 + C:0912H LINE# 146 + C:0914H LINE# 147 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:0370H LINE# 150 + C:038DH LINE# 152 + C:0395H LINE# 153 + C:0397H LINE# 154 + C:03A3H LINE# 155 + C:03A6H LINE# 156 + C:03AEH LINE# 157 + C:03B0H LINE# 158 + C:03B3H LINE# 159 + C:03B3H LINE# 160 + C:03C4H LINE# 161 + C:03C4H LINE# 162 + C:03CAH LINE# 163 + C:03CCH LINE# 164 + C:03CCH LINE# 165 + C:03CEH LINE# 168 + C:03CEH LINE# 169 + C:03D4H LINE# 170 + C:03D4H LINE# 172 + C:03D7H LINE# 173 + C:03D7H LINE# 174 + C:03E8H LINE# 175 + C:03E8H LINE# 176 + C:03EEH LINE# 177 + C:03F0H LINE# 178 + C:03F0H LINE# 179 + C:03F0H LINE# 181 + C:03F6H LINE# 182 + C:03F6H LINE# 183 + C:03FEH LINE# 184 + C:03FEH LINE# 185 + C:0400H LINE# 186 + C:0405H LINE# 187 + C:0405H LINE# 188 + C:0407H LINE# 190 + C:0407H LINE# 191 + C:040AH LINE# 192 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 7 + + + C:040CH LINE# 193 + C:040CH LINE# 194 + C:041FH LINE# 195 + C:042BH LINE# 196 + ------- ENDPROC TIMER0_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0929H LINE# 198 + C:0929H LINE# 199 + C:0929H LINE# 202 + C:092AH LINE# 203 + C:092BH LINE# 204 + C:092DH LINE# 205 + C:092FH LINE# 206 + C:0931H LINE# 208 + C:0931H LINE# 210 + C:0931H LINE# 211 + C:0933H LINE# 213 + C:0935H LINE# 214 + C:0937H LINE# 215 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:0889H LINE# 216 + C:0889H LINE# 217 + C:0889H LINE# 218 + C:088CH LINE# 219 + C:088FH LINE# 220 + C:0898H LINE# 221 + C:089BH LINE# 222 + C:089EH LINE# 223 + C:089EH LINE# 224 + C:089EH LINE# 225 + C:08A1H LINE# 226 + C:08A4H LINE# 227 + C:08A7H LINE# 228 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:0843H PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0720H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 8 + + + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:004CH SYMBOL temp + D:004DH SYMBOL temp_old + ------- ENDDO + C:0720H LINE# 5 + C:0720H LINE# 6 + C:0720H LINE# 10 + C:0723H LINE# 11 + C:0732H LINE# 13 + C:0740H LINE# 14 + C:0746H LINE# 15 + C:0746H LINE# 16 + C:074BH LINE# 17 + C:0753H LINE# 18 + C:0756H LINE# 19 + C:0759H LINE# 20 + C:0759H LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC RELAY + B:0020H.6 SYMBOL enable + ------- DO + D:004EH SYMBOL temp + D:004FH SYMBOL temp_old + ------- ENDDO + C:0843H LINE# 24 + C:0843H LINE# 25 + C:0843H LINE# 28 + C:0846H LINE# 29 + C:084BH LINE# 31 + C:084EH LINE# 32 + C:0854H LINE# 33 + C:0854H LINE# 34 + C:0857H LINE# 35 + C:085FH LINE# 36 + C:0862H LINE# 37 + C:0865H LINE# 38 + C:0865H LINE# 39 + ------- ENDPROC RELAY + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 9 + + + C:075AH PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0015H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:075AH LINE# 7 + C:075AH LINE# 8 + C:075AH LINE# 10 + C:075DH LINE# 11 + C:0765H LINE# 14 + C:076CH LINE# 15 + C:0774H LINE# 16 + C:0777H LINE# 19 + C:077EH LINE# 20 + C:0781H LINE# 21 + C:0784H LINE# 22 + C:078CH LINE# 23 + C:078FH LINE# 24 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0568H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 10 + + + ------- ENDDO + C:0568H LINE# 2 + C:0568H LINE# 3 + C:0568H LINE# 4 + C:056AH LINE# 5 + C:056CH LINE# 6 + C:056EH LINE# 7 + C:0570H LINE# 8 + C:0572H LINE# 9 + C:0574H LINE# 10 + C:0577H LINE# 11 + C:0579H LINE# 12 + C:057CH LINE# 13 + C:057EH LINE# 14 + C:0581H LINE# 15 + C:0583H LINE# 16 + C:0586H LINE# 17 + C:0588H LINE# 18 + C:058AH LINE# 19 + C:058CH LINE# 20 + C:058EH LINE# 21 + C:0590H LINE# 22 + C:0593H LINE# 23 + C:0595H LINE# 24 + C:0598H LINE# 25 + C:059AH LINE# 26 + C:059DH LINE# 27 + C:059FH LINE# 28 + C:05A2H LINE# 29 + C:05A4H LINE# 30 + C:05A6H LINE# 31 + C:05A8H LINE# 32 + C:05AAH LINE# 33 + C:05ACH LINE# 34 + C:05AFH LINE# 35 + C:05B1H LINE# 36 + C:05B4H LINE# 37 + C:05B6H LINE# 38 + C:05B9H LINE# 39 + C:05BBH LINE# 40 + C:05BEH LINE# 41 + C:05C0H LINE# 42 + C:05C2H LINE# 43 + C:05C4H LINE# 44 + C:05C6H LINE# 45 + C:05C8H LINE# 46 + C:05CBH LINE# 47 + C:05CDH LINE# 48 + C:05D0H LINE# 49 + C:05D2H LINE# 50 + C:05D5H LINE# 51 + C:05D7H LINE# 52 + C:05DAH LINE# 53 + C:05DCH LINE# 54 + C:05DEH LINE# 55 + C:05E1H LINE# 56 + C:05E1H LINE# 57 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 11 + + + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:08C7H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:08C7H LINE# 3 + C:08C7H LINE# 4 + C:08C7H LINE# 5 + C:08CAH LINE# 6 + C:08D2H LINE# 7 + C:08D5H LINE# 9 + C:08D8H LINE# 10 + C:08E0H LINE# 11 + C:08E3H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE DS1302 + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:07C4H PUBLIC _Read_Rtc + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:06A5H PUBLIC _Set_Rtc + C:06E3H PUBLIC _Read_Ds1302_Byte + B:00A0H.3 PUBLIC SDA + B:0090H.7 PUBLIC SCK + C:0915H PUBLIC _Write_Ds1302_Byte + D:00C8H PUBLIC T2CON + C:08E4H PUBLIC _Write_Ds1302 + B:0090H.3 PUBLIC RST + D:00D0H PUBLIC PSW + ------- PROC _WRITE_DS1302 + D:0007H SYMBOL temp + ------- DO + D:0006H SYMBOL i + ------- ENDDO + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 12 + + + C:08E4H LINE# 13 + C:08E4H LINE# 14 + C:08E4H LINE# 16 + C:08F0H LINE# 17 + C:08F0H LINE# 18 + C:08F2H LINE# 19 + C:08F6H LINE# 20 + C:08FAH LINE# 21 + C:08FCH LINE# 22 + C:08FFH LINE# 23 + ------- ENDPROC _WRITE_DS1302 + ------- PROC _WRITE_DS1302_BYTE + D:0007H SYMBOL address + D:0005H SYMBOL dat + C:0915H LINE# 26 + C:0915H LINE# 27 + C:0915H LINE# 28 + C:0917H LINE# 29 + C:0918H LINE# 30 + C:091AH LINE# 31 + C:091BH LINE# 32 + C:091DH LINE# 33 + C:091EH LINE# 34 + C:0921H LINE# 35 + C:0926H LINE# 36 + C:0928H LINE# 37 + ------- ENDPROC _WRITE_DS1302_BYTE + ------- PROC _READ_DS1302_BYTE + D:0007H SYMBOL address + ------- DO + D:0007H SYMBOL i + D:0005H SYMBOL temp + ------- ENDDO + C:06E3H LINE# 40 + C:06E3H LINE# 41 + C:06E3H LINE# 42 + C:06E5H LINE# 43 + C:06E7H LINE# 44 + C:06E8H LINE# 45 + C:06EAH LINE# 46 + C:06EBH LINE# 47 + C:06EDH LINE# 48 + C:06EEH LINE# 49 + C:06F1H LINE# 50 + C:06FDH LINE# 51 + C:06FDH LINE# 52 + C:06FFH LINE# 53 + C:0703H LINE# 54 + C:0706H LINE# 55 + C:0709H LINE# 56 + C:070BH LINE# 57 + C:070EH LINE# 58 + C:0710H LINE# 59 + C:0711H LINE# 60 + C:0713H LINE# 61 + C:0714H LINE# 62 + C:0716H LINE# 63 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 13 + + + C:0717H LINE# 64 + C:0719H LINE# 65 + C:071AH LINE# 66 + C:071CH LINE# 67 + C:071DH LINE# 68 + C:071FH LINE# 69 + ------- ENDPROC _READ_DS1302_BYTE + ------- PROC _SET_RTC + D:001DH SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:06A5H LINE# 70 + C:06ABH LINE# 71 + C:06ABH LINE# 73 + C:06B2H LINE# 74 + C:06BEH LINE# 75 + C:06DCH LINE# 76 + ------- ENDPROC _SET_RTC + ------- PROC _READ_RTC + D:001DH SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:07C4H LINE# 78 + C:07CAH LINE# 79 + C:07CAH LINE# 81 + C:07D6H LINE# 82 + C:07F4H LINE# 83 + ------- ENDPROC _READ_RTC + ------- ENDMOD DS1302 + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:0866H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:08ADH PUBLIC _Delay_OneWire + C:07F5H PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:081CH PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:0790H PUBLIC rd_temperature + D:00D0H PUBLIC PSW + C:08A9H SYMBOL L?0020 + ------- PROC L?0019 + ------- ENDPROC L?0019 + C:08A9H SYMBOL L?0020 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 14 + + + C:08ADH LINE# 10 + C:08ADH LINE# 11 + C:08ADH LINE# 13 + C:08B7H LINE# 14 + C:08B7H LINE# 15 + C:08C6H LINE# 17 + C:08C6H LINE# 18 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:07F5H LINE# 21 + C:07F7H LINE# 22 + C:07F7H LINE# 24 + C:0803H LINE# 25 + C:0803H LINE# 26 + C:0805H LINE# 27 + C:0809H LINE# 28 + C:080CH LINE# 29 + C:080EH LINE# 30 + C:0812H LINE# 31 + C:0815H LINE# 32 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:0866H LINE# 36 + C:0866H LINE# 37 + C:0866H LINE# 41 + C:0872H LINE# 42 + C:0872H LINE# 43 + C:0874H LINE# 44 + C:0878H LINE# 45 + C:087AH LINE# 46 + C:087DH LINE# 47 + C:087DH LINE# 48 + C:0880H LINE# 49 + C:0880H LINE# 50 + C:0883H LINE# 51 + C:0886H LINE# 52 + C:0888H LINE# 53 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.6 SYMBOL initflag + ------- ENDDO + C:081CH LINE# 56 + C:081CH LINE# 57 + C:081CH LINE# 58 + C:081EH LINE# 60 + C:0820H LINE# 61 + C:0827H LINE# 62 + C:0829H LINE# 63 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 15 + + + C:0830H LINE# 64 + C:0832H LINE# 65 + C:0839H LINE# 66 + C:083DH LINE# 67 + C:0840H LINE# 69 + C:0842H LINE# 70 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:0790H LINE# 72 + C:0790H LINE# 73 + C:0790H LINE# 75 + C:0793H LINE# 76 + C:0798H LINE# 77 + C:079DH LINE# 79 + C:07A0H LINE# 80 + C:07A5H LINE# 81 + C:07AAH LINE# 82 + C:07AFH LINE# 83 + C:07B2H LINE# 84 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ?C?FPMUL + C:000EH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:011EH PUBLIC ?C?FCASTC + C:0119H PUBLIC ?C?FCASTI + C:0114H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0152H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?CLDOPTR + C:01D3H PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTOPTR + C:0200H PUBLIC ?C?CSTOPTR + ------- ENDMOD ?C?CSTOPTR + + ------- MODULE ?C?UIDIV + C:0222H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:0277H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +Program Size: data=80.7 xdata=0 code=2352 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/04/2024 18:56:11 PAGE 16 + + +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Init.obj b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Init.obj new file mode 100644 index 0000000..f6f9483 Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Init.obj differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Key.obj b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Key.obj new file mode 100644 index 0000000..362dd8f Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Key.obj differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Led.obj b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Led.obj new file mode 100644 index 0000000..82641dc Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Led.obj differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Seg.obj b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Seg.obj new file mode 100644 index 0000000..f8735ae Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Seg.obj differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Uart.obj b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Uart.obj differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Ultrasonic.obj b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/Ultrasonic.obj differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/ds1302.obj b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/ds1302.obj new file mode 100644 index 0000000..8d1e48d Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/ds1302.obj differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/iic.obj b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/iic.obj new file mode 100644 index 0000000..afc3364 Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/iic.obj differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/main.obj b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/main.obj new file mode 100644 index 0000000..d137a51 Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/main.obj differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/onewire.obj b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/onewire.obj new file mode 100644 index 0000000..16b6f5c Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/onewire.obj differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan new file mode 100644 index 0000000..4fc5b11 Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan differ diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan.build_log.htm b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..9529598 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan.build_log.htm @@ -0,0 +1,42 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: VDM51.DLL V1.00 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\demo_zuolan_old\User\zuolan.uvproj +Project File Date: 03/04/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling ds1302.c... +compiling onewire.c... +linking... +Program Size: data=80.7 xdata=0 code=2352 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan.hex b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan.hex new file mode 100644 index 0000000..bb27d05 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan.hex @@ -0,0 +1,181 @@ +:10065900084400000000000000000832050A0A0AE8 +:100669000A0A0A0A08290000000000000000032500 +:06067900131111013117FD +:10044600E53B60030204DB753B011205688F21E57D +:10045600246521FF5521F522E521F45FF523852149 +:1004660024AF227E00EF640C700B053FE53F75F06C +:10047600038485F03FEF640D4E7005A205B3920527 +:10048600AF3F7E00EF64027036E5226410701505FA +:1004960031D3E53194637480948040047D63800297 +:1004A600AD318D31E522641170151531C3E53194F6 +:1004B6000A7480948050047D0A8002AD318D31EF3C +:1004C60064024E7010E52464117002D204E52364C0 +:0504D600117002C204D8 +:0104DB0022FE +:10028500E53A600302036F753A0175320BE53F04E9 +:10029500F5337B007A0079251207C4120790E4FB39 +:1002A500FA7920784112000E1201528E428F43E5F1 +:1002B5003F14604F14700302034A240260030203D3 +:1002C5006F75360A75350A75340AAE42AF437C0040 +:1002D5007D641202227C007D0A1202228D37AE4215 +:1002E500AF437C007D0A1202227C007D0A120222A5 +:1002F5008D38AE42AF437C007D0A1202228D3975DE +:100305002F012275340A300404E5268002E525C450 +:10031500540FFF8F35300404E5268002E525540F80 +:10032500FF8F3675370C300404E5278002E526C4B7 +:10033500540FFF8F38300404E5278002E526540F5B +:10034500FF8F39802275370A75360A75350A753477 +:100355000AE53175F00A8475F00A8485F038E531CF +:0B03650075F00A8485F039E4F52F22C2 +:1005E20030051CC202E5267004E52760067E007F06 +:1005F2000180047E007F00EF4E701DD2018019C27F +:1006020001E53175F00AA4FFC3E5439FE54295F089 +:100612004004D2028002C202200203300103D380CE +:1006220001C39206120843E5267004E52760067EA0 +:10063200007F0180047E007F00EF4E7002D200A294 +:1006420000E433F5442005047F0180027F008F45DA +:07065200A203E433F5462288 +:10090000538E7F5389F0758A18758CFCC28DD28CFA +:05091000D2A9D2AF22C4 +:03000B000203707D +:10037000C0E0C0F0C083C082C0D075D000C000C053 +:1003800001C002C003C004C005C006C007053BE5AC +:100390003B640A7002F53B053AAF3A7E00BE0106A7 +:1003A000BFF403753A00053CE53C64087002F53C77 +:1003B00030011B053EE53E7002053DFFAE3DBE131C +:1003C00013BF8810753D00753E00C2018006753D63 +:1003D00000753E003000190541E54170020540FFFF +:1003E000AE40BE130BBF8808754000754100C201C6 +:1003F0002002033001110528E5286464700EF528F9 +:10040000A203B392038005752800C2037432253C11 +:10041000F8E6FD7429253CF8E6FBAF3C12075A7458 +:1004200044253CF8E6FDAF3C120720D007D006D0AB +:1004300005D004D003D002D001D000D0D0D082D0DB +:0604400083D0F0D0E03291 +:0E09290000007F237E337DB6DDFEDEFCDFFAAC +:01093700229D +:100889001208C71209007B007A0079251206A51201 +:1008990009291207901204461202851205E280F511 +:0C067F00014C00014DFF014E00014FFF37 +:10072000ED600FA8077401088002C333D8FC424C67 +:10073000800EA8077401088002C333D8FCF4524C21 +:10074000E54C654D6013E54CF4F580E5A0541F447D +:0907500080F5A053A01F854C4D5B +:01075900227D +:10084300300605434E108003534EEFE54E654F606F +:1008530011854E80E5A0541F44A0F5A053A01F8529 +:020863004E4FF6 +:010865002270 +:10068B000D08C0F9A4B0999282F88090FFC1BF0801 +:09069B0015010204081020408042 +:10075A007580FFE5A0541F44E0F5A074152FF8E654 +:10076A00F580E5A0541F44C0F5A053A01F74082DBE +:10077A00F8E6F580EB600353807FE5A0541F44E060 +:06078A00F5A053A01F22A0 +:10056800E4FFC2A9C2C4D2C2D2B5D2B420B3027FBA +:100578000420B2027F0520B1027F0620B0027F0767 +:10058800D2C4C2C2D2B5D2B420B3027F0820B2020C +:100598007F0920B1027F0A20B0027F0BD2C4D2C2E9 +:1005A800C2B5D2B420B3027F0C20B2027F0D20B1B5 +:1005B800027F0E20B0027F0FD2C4D2C2D2B5C2B41D +:1005C80020B3027F1020B2027F1120B1027F1220D7 +:0905D800B0027F13D2A975B0FF37 +:0105E10022F7 +:1008C7007580FFE5A0541F4480F5A053A01FE4F5F1 +:0D08D70080E5A0541F44A0F5A053A01F22EF +:1008E400E4FEEEC3940874809480500FC297EF1313 +:0B08F40092A3EFC313FFD2970E80E722 +:0108FF0022D6 +:10091500C29300C29700D293001208E4AF051208F3 +:04092500E4C2932273 +:1006E300E4FDC29300C29700D293001208E4E4FF32 +:1006F300EFC39408748094805011C297EDC313FD27 +:1007030030A303430580D2970F80E5C29300C297BD +:0C07130000D29700C2A300D2A300AF05E3 +:01071F0022B7 +:0606A5008B1D8A1E891F57 +:1006AB00E4FD7F8E120915E4FCECC3940374809473 +:1006BB0080501EEC25E0FFC374849FFFAB1DAA1E68 +:1006CB00A91F8C827583001201D3FD1209150C80B2 +:0806DB00D87D807F8E02091515 +:0607C4008B1D8A1E891F37 +:1007CA00E4FCECC3940374809480501EEC25E0FF93 +:1007DA00C374859FFF1206E3AB1DAA1EA91F8C8254 +:0A07EA00758300EF1202000C80D8A6 +:0107F40022E2 +:0408A9007F057E0049 +:1008AD00EF1FAA0670011E4A600FE4FDEDC3940C04 +:0908BD007480948050EA0D80F370 +:0108C600220F +:0207F500A90752 +:1007F700E4FBEBC39408748094805012C294E9130D +:1008070092941208A9D294E9C313F90B80E47F05E7 +:050817007E000208ADA7 +:10086600E4FBEBC39408748094805014C294ECC3E8 +:1008760013FCD2943094034304801208A90B80E23F +:02088600AF04BD +:01088800224D +:10081C00C206D2947F0C7E001208ADC2947F507E2B +:10082C00001208ADD2947F0A7E001208ADA29492F9 +:06083C00061208A9A20645 +:010842002293 +:1007900012081C7FCC1207F57F441207F512081CC3 +:1007A0007FCC1207F57FBE1207F5120866A9071263 +:1007B0000866EFAD01FCEC120119E4FBFA798078D0 +:0407C0003D02000EE8 +:10000E00EC4D6011E8497017ED33EC3304600DE4EC +:10001E00FCFFFEFD22E933E8330470F80201BE1244 +:10002E00018958046009E4CC248150062850090245 +:10003E0001C82840030201C5C0E0EB4A7044B980F4 +:10004E0006D0E0FB0201B4EF4E701CBD8008EBFF42 +:10005E00EAFEE9FD80EBE98DF0A4FEE5F00200F783 +:10006E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89CD +:10007E00F0A42EFFE435F0CD89F0A42DFEE435F08A +:10008E008067EF4E7005BD80D780C3EF8BF0A4ACB8 +:10009E00F0EE8BF0A42CFCE435F0F8EF8AF0A42CF3 +:1000AE00E5F038FCE433CB8DF0A42CFCE5F03BF806 +:1000BE00EE8AF0A42CFCE5F038F8E433CF89F0A4F6 +:1000CE002CFCE5F038CF3400CE89F0A42FFFE5F0FC +:1000DE003EFEE433C98DF0A42EFEE5F039CD8AF054 +:1000EE00A42FFFE5F03EFEE43DFD33D0E0FB5007CC +:1000FE000BBB000F0201C8EC2CFCEF33FFEE33FEFE +:06010E00ED33FD0201A02B +:1001140075F020800E75F010800575F0087D007E66 +:10012400007F003392D530D503120277EC334010B0 +:10013400EF33FFEE33FEED33FDEC33FCD5F0ED226F +:0E014400E5F0247EA2D513CC92E7CDCEFF22AB +:10015200EDD2E7CD33EC3392D524814006E4FFFEA5 +:10016200FDFC22FCE4CFCECDCC24E0501174FF8004 +:10017200EDC3CC13CCCD13CDCE13CECF13CF0470A1 +:07018200F030D5DE02027728 +:10018900E9D2E7C933E833F892D5EDD2E7CD33ECBC +:0701990033FC5002B2D52235 +:1001A000EC30E7100FBF000C0EBE00080DBD0004C0 +:1001B0000BEB6014A2D5EB13FCED92E7FD2274FF6C +:1001C000FCFDFEFF22E480F8A2D574FF13FC7D80C5 +:0301D000E480EFD9 +:030000000204DC1B +:0C04DC00787FE4F6D8FD75814F020523FF +:1001D300BB010CE58229F582E5833AF583E02250E1 +:1001E30006E92582F8E622BBFE06E92582F8E2222B +:0D01F300E58229F582E5833AF583E4932245 +:10020000F8BB010DE58229F582E5833AF583E8F034 +:10021000225006E92582C8F622BBFE05E92582C8E0 +:02022000F222C8 +:10022200BC000BBE0029EF8DF084FFADF022E4CCC0 +:10023200F875F008EF2FFFEE33FEEC33FCEE9DEC89 +:10024200984005FCEE9DFE0FD5F0E9E4CEFD22EDCF +:10025200F8F5F0EE8420D21CFEADF075F008EF2F19 +:10026200FFED33FD4007985006D5F0F222C398FD0A +:050272000FD5F0EA22A7 +:0E027700C3E49FFFE49EFEE49DFDE49CFC2298 +:1004E800020889E493A3F8E493A34003F68001F299 +:1004F80008DFF48029E493A3F85407240CC8C33315 +:10050800C4540F4420C8834004F456800146F6DFE3 +:10051800E4800B0102040810204080900659E47E14 +:10052800019360BCA3FF543F30E509541FFEE493D8 +:10053800A360010ECF54C025E060A840B8E493A39F +:10054800FAE493A3F8E493A3C8C582C8CAC583CACA +:10055800F0A3C8C582C8CAC583CADFE9DEE780BE82 +:0106A4000055 +:00000001FF diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan.lnp b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan.lnp new file mode 100644 index 0000000..d37067a --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/Objects/zuolan.lnp @@ -0,0 +1,9 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\ds1302.obj", +".\Objects\onewire.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/main.c b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/main.c new file mode 100644 index 0000000..e4fdba7 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/main.c @@ -0,0 +1,229 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ʱ䷽ */ +uchar ucRtc[3] = {0x13, 0x11, 0x11}; // ʼʱ13:11:11 + +/* ̷ */ +uchar Key_Slow_Down; + +/* ʾ */ +uchar Seg_show_mode; // 0 ¶ 1 ʱ 2 +bit Control_mode; // ģʽ 0 ¶ 1 ʱ +bit Time_show_mode; // ʱʾģʽ 0 ʱ 1 +bit Temperature_mode; // ¶ȿƵ +bit Time_mode; // ʱƵ +bit Time_Led; // +bit Led_show; // ˸ +/* */ +uint Temperature_value_10x; // ¶Ȳֵ 10 +uchar Temperature_para = 23; // ¶Ȳ + +/* ʱ */ +uint time_5s; +uint time_5s_led; +uchar time_100ms; + +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 12) + Seg_show_mode = (++Seg_show_mode) % 3; + if (Key_Down == 13) + Control_mode ^= 1; + if (Seg_show_mode == 2) + { + if (Key_Down == 16) + Temperature_para = (++Temperature_para > 99) ? 99 : Temperature_para; + if (Key_Down == 17) + Temperature_para = (--Temperature_para < 10) ? 10 : Temperature_para; + } + if (Seg_show_mode == 2) + { + if (Key_Old == 17) + Time_show_mode = 1; + if (Key_Up == 17) + Time_show_mode = 0; + } +} +/* ܴ */ +void Seg_Proc() +{ + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + Seg_Buf[0] = 11; // U + Seg_Buf[1] = Seg_show_mode + 1; + Read_Rtc(ucRtc); + Temperature_value_10x = rd_temperature() * 10; + switch (Seg_show_mode) + { + case 0: + /* ¶ */ + Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + Seg_Buf[5] = Temperature_value_10x / 100 % 10; + Seg_Buf[6] = Temperature_value_10x / 10 % 10; + Seg_Buf[7] = Temperature_value_10x % 10; + Seg_Point[6] = 1; + break; + case 1: + /* ʱ */ + + Seg_Buf[2] = 10; + Seg_Buf[3] = Time_show_mode ? ucRtc[1] / 16 : ucRtc[0] / 16; + Seg_Buf[4] = Time_show_mode ? ucRtc[1] % 16 : ucRtc[0] % 16; + Seg_Buf[5] = 12; //- + Seg_Buf[6] = Time_show_mode ? ucRtc[2] / 16 : ucRtc[1] / 16; + Seg_Buf[7] = Time_show_mode ? ucRtc[2] % 16 : ucRtc[1] % 16; + Seg_Point[6] = 0; + break; + case 2: + /* */ + Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + Seg_Buf[6] = Temperature_para / 10 % 10; + Seg_Buf[7] = Temperature_para % 10; + Seg_Point[6] = 0; + break; + } +} + +/* LED */ +void Led_Proc() +{ + // ʱ + if (Control_mode) + { + Temperature_mode = 0; // ر¶ȱͻȻлbug + // ֺͬʱ0x00ʱ + if ((ucRtc[1] || ucRtc[2]) == 0) + Time_mode = 1; // ״̬ + } + // ¶ȿ + else + { + Time_mode = 0; // ر״̬ͻȻлbug + if (Temperature_value_10x >= Temperature_para * 10) + Temperature_mode = 1; // ¶ȱ + else + Temperature_mode = 0; // ¶ + } + Relay(Temperature_mode || Time_mode); // ¶ȱ״̬ʱ + + // ֺͬʱ0x00ʱ + if ((ucRtc[1] || ucRtc[2]) == 0) + Time_Led = 1; + ucLed[0] = Time_Led; // LED5s + ucLed[1] = (Control_mode == 0); + ucLed[2] = Led_show; +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (Time_mode) + { + if (++time_5s == 5000) + { + time_5s = 0; + Time_mode = 0; + } + } + // ʱûпƵʱʱΪ0 + else + { + time_5s = 0; + } + + if (Time_Led) + { + if (++time_5s_led == 5000) + { + time_5s_led = 0; + Time_mode = 0; + } + } + + if (Temperature_mode || Time_mode) + { + if (++time_100ms == 100) + { + time_100ms = 0; + Led_show ^= 1; + } + } + else + { + time_100ms = 0; + Led_show = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} +void main() +{ + System_Init(); + Timer0_Init(); + Set_Rtc(ucRtc); + Delay750ms(); + rd_temperature(); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/main.h b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/main.h new file mode 100644 index 0000000..be13ddf --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/main.h @@ -0,0 +1,12 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "ds1302.h" +#include "onewire.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#include "Init.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/zuolan.uvgui.haze b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/zuolan.uvgui.haze new file mode 100644 index 0000000..871b4bd --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/zuolan.uvgui.haze @@ -0,0 +1,1396 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 9 + 9 + 1543 + 823 + + + + 0 + + 533 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000040000000100000032433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6F6C645C4472697665725C4C65642E6800000000054C65642E68000000009CC1B600FFFFFFFF32433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6F6C645C4472697665725C4C65642E6300000000054C65642E6300000000BCA8E100FFFFFFFF25443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000F0A0A100FFFFFFFF31433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6F6C645C557365725C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF31433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6F6C645C557365725C6D61696E2E6800000000066D61696E2E6800000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000A501000077000000FF05000035020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + A50100007700000081040000E4000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0000000025020000EE050000F4020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000028020000EB050000DB020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000028020000EB050000DB020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000028020000EB050000DB020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000F4020000EE05000007030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000A50100007700000081040000E4000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000F10200007700000081040000C8010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100000D020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000001100000077000000A101000035020000000000004F000000900100000D0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000011000000B801000081040000390200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000000D020000EE0500001102000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B401000077940000018000800000010000001100000039020000FF0500001C0300000000000011020000EE050000F40200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2096 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000C524541445F6F6E6577697265960000000000000005000C524541445F6F6E6577697265094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E67650000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 4 + + ..\Driver\Led.h + 56 + 1 + 2 + 1 + + 0 + + + ..\Driver\Led.c + 8 + 10 + 30 + 1 + + 0 + + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 9 + 96 + 123 + 1 + + 0 + + + main.h + 27 + 1 + 12 + 1 + + 0 + + + + +
diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/zuolan.uvopt b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/zuolan.uvopt new file mode 100644 index 0000000..4fadcfa --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/zuolan.uvopt @@ -0,0 +1,258 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 11 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 1 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\ds1302.c + ds1302.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + +
diff --git a/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/zuolan.uvproj b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/zuolan.uvproj new file mode 100644 index 0000000..2af5843 --- /dev/null +++ b/题目/真题/13 第十三届省赛_左岚/第一套/第十三届省赛1/User/zuolan.uvproj @@ -0,0 +1,410 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 11 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + ds1302.c + 1 + ..\Driver\ds1302.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + + + + + +
diff --git a/题目/真题/13 第十三届省赛_左岚/第二套/第13届省赛第二次-超声波与PCF8591.png b/题目/真题/13 第十三届省赛_左岚/第二套/第13届省赛第二次-超声波与PCF8591.png new file mode 100644 index 0000000..a561d18 Binary files /dev/null and b/题目/真题/13 第十三届省赛_左岚/第二套/第13届省赛第二次-超声波与PCF8591.png differ diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/.vscode/settings.json b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Init.c b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Init.h b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Key.c b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Key.c new file mode 100644 index 0000000..b9286f3 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Key.c @@ -0,0 +1,56 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + if (P33 == 0 && P32 == 0) + temp = 89; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + return temp; +} \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Key.h b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Led.c b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Led.c new file mode 100644 index 0000000..0a39c96 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Led.c @@ -0,0 +1,39 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} +/// @brief ̵ +/// @param enable 0 1 +void Relay(bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x10; + else + temp &= ~(0x10); + if (temp != temp_old) + { + P0 = temp; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Led.h b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Led.h new file mode 100644 index 0000000..5756647 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Led.h @@ -0,0 +1,3 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); +void Relay(bit enable); \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Seg.c b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Seg.c new file mode 100644 index 0000000..735d8c5 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 +// - P F +code unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0xbf, 0x8c, 0x8e}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = 0x01 << wela; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Seg.h b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Ultrasonic.c b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Ultrasonic.c new file mode 100644 index 0000000..c2684dd --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Ultrasonic.c @@ -0,0 +1,56 @@ +#include "Ultrasonic.h" +#include "intrins.h" + +sbit Tx = P1 ^ 0; +sbit Rx = P1 ^ 1; +void Delay12us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 33; // 38 + while (--i) + ; +} + +void Ut_Wave_Init() +{ + unsigned char i; + // 840kHzķ + // f=40kHz->T=1/f=0.000025s=25us + // 12.5us 1 12.5us 0 + for (i = 0; i < 8; i++) + { + Tx = 1; + Delay12us(); + Tx = 0; + Delay12us(); + } +} + +unsigned int Ut_Wave_Data(char Cail, unsigned int speed) +{ + unsigned int time; + CH = CL = 0; // PCAĴֵ + CCON = 0; // ʼPCAƼĴ/PCAʱֹͣ/CF/ + + // EA = 0; // رж + Ut_Wave_Init(); // ͳź + // EA = 1; // ж + CR = 1; // PCAʼ + while (Rx && !CF) // TF1 + ; // ȴ + CR = 0; // PCAֹͣ + if (CF == 0) + { + time = CH << 8 | CL; // λΪ + // V->m/s T->us + return ((float)time / 20000 * speed + Cail); // صĵλcm + } + else + { + CF = 0; + return 0; + } +} \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Ultrasonic.h b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Ultrasonic.h new file mode 100644 index 0000000..e40702a --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/Ultrasonic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.h" +unsigned int Ut_Wave_Data(char Cail, unsigned int speed); \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/iic.c b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/iic.c new file mode 100644 index 0000000..aaabb3c --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/iic.c @@ -0,0 +1,139 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// 写入的值是数字值0-255,而不是模拟值 +void Da_Write(unsigned char dat) +{ + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/iic.h b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/iic.h new file mode 100644 index 0000000..f4ee871 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/iic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Da_Write(unsigned char dat); diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/onewire.c b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/onewire.c new file mode 100644 index 0000000..8efce41 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/onewire.c @@ -0,0 +1,98 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "REG52.H" +#include "intrins.h" +sbit DQ = P1 ^ 4; // 单总线数据口 +void Delay4us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 9; + while (--i) + ; +} + +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + Delay4us(); + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0x44); // 启动温度转换 + Delay_OneWire(200); // 等待温度转换 + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0xbe); // 读取温度值 + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/onewire.h b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/Driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Init.lst b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Init.lst new file mode 100644 index 0000000..f31836f --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 05/02/2024 16:37:55 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Key.lst b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Key.lst new file mode 100644 index 0000000..1684e13 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Key.lst @@ -0,0 +1,82 @@ +C51 COMPILER V9.59.0.0 KEY 05/02/2024 16:37:55 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 P44 = 0; + 6 1 P42 = 1; + 7 1 P35 = 1; + 8 1 P34 = 1; + 9 1 if (P33 == 0) + 10 1 temp = 4; + 11 1 if (P32 == 0) + 12 1 temp = 5; + 13 1 if (P31 == 0) + 14 1 temp = 6; + 15 1 if (P30 == 0) + 16 1 temp = 7; + 17 1 P44 = 1; + 18 1 P42 = 0; + 19 1 P35 = 1; + 20 1 P34 = 1; + 21 1 if (P33 == 0) + 22 1 temp = 8; + 23 1 if (P32 == 0) + 24 1 temp = 9; + 25 1 if (P31 == 0) + 26 1 temp = 10; + 27 1 if (P30 == 0) + 28 1 temp = 11; + 29 1 if (P33 == 0 && P32 == 0) + 30 1 temp = 89; + 31 1 P44 = 1; + 32 1 P42 = 1; + 33 1 P35 = 0; + 34 1 P34 = 1; + 35 1 if (P33 == 0) + 36 1 temp = 12; + 37 1 if (P32 == 0) + 38 1 temp = 13; + 39 1 if (P31 == 0) + 40 1 temp = 14; + 41 1 if (P30 == 0) + 42 1 temp = 15; + 43 1 P44 = 1; + 44 1 P42 = 1; + 45 1 P35 = 1; + 46 1 P34 = 0; + 47 1 if (P33 == 0) + 48 1 temp = 16; + 49 1 if (P32 == 0) + 50 1 temp = 17; + 51 1 if (P31 == 0) + 52 1 temp = 18; + 53 1 if (P30 == 0) + 54 1 temp = 19; + C51 COMPILER V9.59.0.0 KEY 05/02/2024 16:37:55 PAGE 2 + + 55 1 return temp; + 56 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 123 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Led.lst b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Led.lst new file mode 100644 index 0000000..6adb41c --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Led.lst @@ -0,0 +1,63 @@ +C51 COMPILER V9.59.0.0 LED 05/02/2024 16:37:54 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + 22 /// @brief ̵ + 23 /// @param enable 0 1 + 24 void Relay(bit enable) + 25 { + 26 1 static unsigned char temp = 0x00; + 27 1 static unsigned char temp_old = 0xff; + 28 1 if (enable) + 29 1 temp |= 0x10; + 30 1 else + 31 1 temp &= ~(0x10); + 32 1 if (temp != temp_old) + 33 1 { + 34 2 P0 = temp; + 35 2 P2 = P2 & 0x1f | 0xa0; + 36 2 P2 &= 0x1f; + 37 2 temp_old = temp; + 38 2 } + 39 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 93 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 4 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Seg.lst b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Seg.lst new file mode 100644 index 0000000..a04fc15 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 05/02/2024 16:37:54 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 + 3 // - P F + 4 code unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 5 0xbf, 0x8c, 0x8e}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = 0x01 << wela; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 60 ---- + CONSTANT SIZE = 14 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Ultrasonic.lst b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..259473a --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/Ultrasonic.lst @@ -0,0 +1,82 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 05/02/2024 16:37:56 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; // 38 + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned int Ut_Wave_Data(char Cail, unsigned int speed) + 33 { + 34 1 unsigned int time; + 35 1 CH = CL = 0; // PCAĴֵ + 36 1 CCON = 0; // ʼPCAƼĴ/PCAʱֹͣ/CF/ + 37 1 + 38 1 // EA = 0; // رж + 39 1 Ut_Wave_Init(); // ͳź + 40 1 // EA = 1; // ж + 41 1 CR = 1; // PCAʼ + 42 1 while (Rx && !CF) // TF1 + 43 1 ; // ȴ + 44 1 CR = 0; // PCAֹͣ + 45 1 if (CF == 0) + 46 1 { + 47 2 time = CH << 8 | CL; // λΪ + 48 2 // V->m/s T->us + 49 2 return ((float)time / 20000 * speed + Cail); // صĵλcm + 50 2 } + 51 1 else + 52 1 { + 53 2 CF = 0; + 54 2 return 0; + C51 COMPILER V9.59.0.0 ULTRASONIC 05/02/2024 16:37:56 PAGE 2 + + 55 2 } + 56 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 148 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 3 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/iic.lst b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/iic.lst new file mode 100644 index 0000000..3de35cd --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/iic.lst @@ -0,0 +1,168 @@ +C51 COMPILER V9.59.0.0 IIC 05/02/2024 16:37:56 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 05/02/2024 16:37:56 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 05/02/2024 16:37:56 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 // 写入的值是数字值0-255,而不是模拟值 + 127 void Da_Write(unsigned char dat) + 128 { + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 + 134 1 I2CSendByte(0x41); + 135 1 I2CWaitAck(); + 136 1 I2CSendByte(dat); + 137 1 I2CWaitAck(); + 138 1 I2CStop(); + 139 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 215 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/main.lst b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/main.lst new file mode 100644 index 0000000..6700a21 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/main.lst @@ -0,0 +1,464 @@ +C51 COMPILER V9.59.0.0 MAIN 05/02/2024 16:37:54 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ // ܼ + 6 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 7 uchar Seg_Pos; // ָʾ + 8 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 9 /* */ + 10 uint T_value_10x; // ¶Ȳֵ10 + 11 uint Dis_value; // ĬΪcm + 12 uchar Para_Dis; // + 13 uchar Para_T; // ¶Ȳ + 14 char Dis_Cail; // У׼ֵ + 15 uint Speed; // ٶ + 16 uchar DAC_limit_10x; // 10dac + 17 uint Record_Data[12]; + 18 uchar Record_Data_Index; + 19 /* ʾ */ + 20 uchar Seg_show_mode; // 0 1 2 + 21 uchar Dis_show_mode; // 0 cm 1 m + 22 uchar Para_show_mode; // 0 1 ¶ + 23 uchar FAC_show_mode; // 0 У׼ 1 2 DAC + 24 /* ʱ */ + 25 uint time_all_1s; + 26 uint time_6s; + 27 uint time_2s; + 28 uchar time_100ms; + 29 uchar time_500ms; + 30 /* ж */ + 31 bit Record_flag; // ڼ¼ı־ + 32 bit Key_lock; // ס + 33 bit Key_Two_Press; // ˫ + 34 bit Led_Blink_flag; // LED˸־ + 35 bit Output_Record_flag; // ¼ + 36 void Recover_Sys() + 37 { + 38 1 Seg_show_mode = 0; + 39 1 Para_Dis = 40; + 40 1 Para_T = 30; + 41 1 Dis_Cail = 0; + 42 1 Speed = 340; + 43 1 DAC_limit_10x = 10; + 44 1 } + 45 /* ݴ */ + 46 void Data_Proc() + 47 { + 48 1 uchar DAC_temp_100x; + 49 1 if (time_all_1s % 500 == 0) + 50 1 { + 51 2 // ȡ + 52 2 Dis_value = Ut_Wave_Data(Dis_Cail, Speed); + 53 2 if (Record_flag) + 54 2 { + C51 COMPILER V9.59.0.0 MAIN 05/02/2024 16:37:54 PAGE 2 + + 55 3 if (Dis_value < 10) + 56 3 DAC_temp_100x = DAC_limit_10x * 10; + 57 3 else if (Dis_value >= 90) + 58 3 DAC_temp_100x = 500; + 59 3 else + 60 3 DAC_temp_100x = (5 - DAC_limit_10x) * (Dis_value - 90) * 100 / 80 + 500; + 61 3 Record_Data[Record_Data_Index] = DAC_temp_100x; + 62 3 Record_Data_Index = (++Record_Data_Index) % 12; + 63 3 } + 64 2 } + 65 1 if (time_all_1s % 500 == 0) + 66 1 { + 67 2 // ¶ȶȡ + 68 2 T_value_10x = rd_temperature() * 10; + 69 2 } + 70 1 } + 71 /* ̴ */ + 72 void Key_Proc() + 73 { + 74 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 75 1 // ڼ¼ֱжʧЧ + 76 1 if (Record_flag) + 77 1 return; + 78 1 if (time_all_1s % 10) + 79 1 return; + 80 1 Key_Val = Key_Read(); + 81 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 82 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 83 1 Key_Old = Key_Val; + 84 1 if (Key_Old == 89) + 85 1 { + 86 2 // ڿʼ + 87 2 Key_lock = 1; + 88 2 Key_Two_Press = 1; + 89 2 if (time_2s > 2000) + 90 2 Recover_Sys(); + 91 2 } + 92 1 // ̣ + 93 1 if (Key_lock && Key_Old) + 94 1 return; + 95 1 Key_lock = 0; + 96 1 if (Key_Down == 4) + 97 1 { + 98 2 Seg_show_mode = (++Seg_show_mode) % 3; + 99 2 Dis_show_mode = FAC_show_mode = Para_show_mode = 0; + 100 2 } + 101 1 switch (Seg_show_mode) + 102 1 { + 103 2 case 0: + 104 2 /* */ + 105 2 if (Key_Down == 5) + 106 2 Dis_show_mode = (++Dis_show_mode) % 2; + 107 2 if (Key_Down == 8) + 108 2 Record_flag = 1; + 109 2 if (Key_Down == 9) + 110 2 { + 111 3 Output_Record_flag = 1; + 112 3 Record_Data_Index = 11; + 113 3 } + 114 2 break; + 115 2 case 1: + 116 2 /* */ + C51 COMPILER V9.59.0.0 MAIN 05/02/2024 16:37:54 PAGE 3 + + 117 2 if (Key_Down == 5) + 118 2 Para_show_mode = (++Para_show_mode) % 2; + 119 2 switch (Para_show_mode) + 120 2 { + 121 3 case 0: + 122 3 /* */ + 123 3 if (Key_Down == 8) + 124 3 Para_Dis = (Para_Dis == 90) ? 10 + 125 3 : Para_Dis + 10; + 126 3 else if (Key_Down == 9) + 127 3 Para_Dis = (Para_Dis == 10) ? 90 + 128 3 : Para_Dis - 10; + 129 3 break; + 130 3 + 131 3 case 1: + 132 3 /* ¶ */ + 133 3 if (Key_Down == 8) + 134 3 Para_T = (Para_T == 80) ? 0 + 135 3 : Para_T + 1; + 136 3 else if (Key_Down == 9) + 137 3 Para_T = (Para_T == 0) ? 80 + 138 3 : Para_T - 1; + 139 3 break; + 140 3 } + 141 2 break; + 142 2 case 2: + 143 2 /* */ + 144 2 if (Key_Down == 5) + 145 2 FAC_show_mode = (++FAC_show_mode) % 3; + 146 2 switch (FAC_show_mode) + 147 2 { + 148 3 case 0: + 149 3 /* У׼ֵ */ + 150 3 if (Key_Down == 8) + 151 3 Dis_Cail = (Dis_Cail == 90) ? -90 + 152 3 : Dis_Cail + 5; + 153 3 else if (Key_Down == 9) + 154 3 Dis_Cail = (Dis_Cail == -90) ? 90 + 155 3 : Dis_Cail - 5; + 156 3 break; + 157 3 case 1: + 158 3 /* */ + 159 3 if (Key_Down == 8) + 160 3 Speed = (Speed == 9990) ? 0 + 161 3 : Speed + 10; + 162 3 else if (Key_Down == 9) + 163 3 Speed = (Speed == 10) ? 9990 + 164 3 : Speed - 10; + 165 3 break; + 166 3 case 2: + 167 3 /* DAC */ + 168 3 if (Key_Down == 8) + 169 3 DAC_limit_10x = (DAC_limit_10x == 20) ? 1 + 170 3 : DAC_limit_10x + 1; + 171 3 else if (Key_Down == 9) + 172 3 DAC_limit_10x = (DAC_limit_10x == 1) ? 20 + 173 3 : DAC_limit_10x - 1; + 174 3 break; + 175 3 } + 176 2 break; + 177 2 } + 178 1 } + C51 COMPILER V9.59.0.0 MAIN 05/02/2024 16:37:54 PAGE 4 + + 179 /* ܴ */ + 180 void Seg_Proc() + 181 { + 182 1 uchar Dis_Cail_Temp; + 183 1 Dis_Cail_Temp = -Dis_Cail; + 184 1 if (time_all_1s % 20) + 185 1 return; + 186 1 switch (Seg_show_mode) + 187 1 { + 188 2 case 0: + 189 2 /* */ + 190 2 Seg_Point[1] = 1; + 191 2 Seg_Point[6] = 0; + 192 2 Seg_Buf[0] = T_value_10x / 100 % 10; + 193 2 Seg_Buf[1] = T_value_10x / 10 % 10; + 194 2 Seg_Buf[2] = T_value_10x % 10; + 195 2 Seg_Buf[3] = 11; //- + 196 2 if (Dis_show_mode == 0) + 197 2 { + 198 3 Seg_Point[5] = 0; + 199 3 // ʾcm + 200 3 Seg_Buf[4] = (Dis_value / 1000 == 0) ? 10 + 201 3 : Dis_value / 1000; + 202 3 Seg_Buf[5] = (Seg_Buf[4] == 10 && Dis_value / 100 % 10 == 0) ? 10 + 203 3 : Dis_value / 100 % 10; + 204 3 Seg_Buf[6] = (Seg_Buf[5] == 10 && Dis_value / 10 % 10 == 0) ? 10 + 205 3 : Dis_value / 10 % 10; + 206 3 Seg_Buf[7] = Dis_value % 10; + 207 3 } + 208 2 else + 209 2 { + 210 3 Seg_Point[5] = 1; + 211 3 // ʾm + 212 3 Seg_Buf[4] = (Dis_value < 1000) ? 10 + 213 3 : Dis_value / 1000; + 214 3 Seg_Buf[5] = Dis_value / 100 % 10; + 215 3 Seg_Buf[6] = Dis_value / 10 % 10; + 216 3 Seg_Buf[7] = Dis_value % 10; + 217 3 } + 218 2 break; + 219 2 + 220 2 case 1: + 221 2 Seg_Point[1] = Seg_Point[5] = Seg_Point[6] = 0; + 222 2 Seg_Buf[0] = 12; // P + 223 2 Seg_Buf[1] = Para_show_mode + 1; + 224 2 Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + 225 2 Seg_Buf[6] = (Para_show_mode == 0) ? Para_Dis / 10 + 226 2 : Para_T / 10; + 227 2 Seg_Buf[7] = (Para_show_mode == 0) ? Para_Dis % 10 + 228 2 : Para_T % 10; + 229 2 + 230 2 break; + 231 2 case 2: + 232 2 Seg_Buf[0] = 13; // F + 233 2 Seg_Buf[1] = FAC_show_mode + 1; + 234 2 switch (FAC_show_mode) + 235 2 { + 236 3 case 0: + 237 3 Seg_Point[1] = Seg_Point[5] = Seg_Point[6] = 0; + 238 3 /* У׼ */ + 239 3 Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 240 3 if (Dis_Cail <= -10) + C51 COMPILER V9.59.0.0 MAIN 05/02/2024 16:37:54 PAGE 5 + + 241 3 { + 242 4 Seg_Buf[5] = 11; //- + 243 4 Seg_Buf[6] = Dis_Cail_Temp / 10 % 10; + 244 4 Seg_Buf[7] = Dis_Cail_Temp % 10; + 245 4 } + 246 3 else if (Dis_Cail < 0) + 247 3 { + 248 4 Seg_Buf[5] = 10; + 249 4 Seg_Buf[6] = 11; //- + 250 4 Seg_Buf[7] = Dis_Cail_Temp % 10; + 251 4 } + 252 3 else + 253 3 { + 254 4 Seg_Buf[5] = 50; + 255 4 Seg_Buf[6] = (Dis_Cail / 10 % 10 == 0) ? 10 + 256 4 : Dis_Cail / 10 % 10; + 257 4 Seg_Buf[7] = Dis_Cail % 10; + 258 4 } + 259 3 break; + 260 3 + 261 3 case 1: + 262 3 Seg_Point[1] = Seg_Point[5] = Seg_Point[6] = 0; + 263 3 /* */ + 264 3 Seg_Buf[2] = Seg_Buf[3] = 10; + 265 3 Seg_Buf[4] = (Speed / 1000 % 10 == 0) ? 10 + 266 3 : Speed / 1000 % 10; + 267 3 Seg_Buf[5] = (Seg_Buf[4] == 10 && Speed / 100 % 10 == 0) ? 10 + 268 3 : Speed / 100 % 10; + 269 3 Seg_Buf[6] = Speed / 10 % 10; + 270 3 Seg_Buf[7] = Speed % 10; + 271 3 break; + 272 3 case 2: + 273 3 Seg_Point[1] = Seg_Point[5] = 0; + 274 3 Seg_Point[6] = 1; + 275 3 /* DAC */ + 276 3 Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + 277 3 Seg_Buf[6] = DAC_limit_10x / 10 % 10; + 278 3 Seg_Buf[7] = DAC_limit_10x % 10; + 279 3 break; + 280 3 } + 281 2 break; + 282 2 } + 283 1 } + 284 + 285 /* LED */ + 286 void Led_Proc() + 287 { + 288 1 uchar i; + 289 1 if (Output_Record_flag) + 290 1 Da_Write(Record_Data[11 - Record_Data_Index] * 51 / 100); + 291 1 switch (Seg_show_mode) + 292 1 { + 293 2 case 0: + 294 2 /* */ + 295 2 if (Dis_value > 255) + 296 2 memset(ucLed, 1, 8); + 297 2 else + 298 2 { + 299 3 for (i = 0; i < 8; i++) + 300 3 { + 301 4 ucLed[i] = Dis_value & (0x01 << i); + 302 4 } + C51 COMPILER V9.59.0.0 MAIN 05/02/2024 16:37:54 PAGE 6 + + 303 3 } + 304 2 break; + 305 2 + 306 2 case 1: + 307 2 /* */ + 308 2 memset(ucLed, 0, 7); + 309 2 ucLed[7] = 1; + 310 2 break; + 311 2 + 312 2 case 2: + 313 2 /* */ + 314 2 memset(ucLed + 1, 0, 7); + 315 2 ucLed[0] = Led_Blink_flag; + 316 2 break; + 317 2 } + 318 1 Relay(Dis_value <= Para_Dis + 5 && + 319 1 Dis_value >= Para_Dis - 5 && + 320 1 T_value_10x < Para_T * 10); + 321 1 } + 322 + 323 /* ʱ0жϳʼ */ + 324 void Timer0_Init(void) // 1@12.000MHz + 325 { + 326 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 327 1 TMOD &= 0xF0; // öʱģʽ + 328 1 TL0 = 0x18; // öʱʼֵ + 329 1 TH0 = 0xFC; // öʱʼֵ + 330 1 TF0 = 0; // TF0־ + 331 1 TR0 = 1; // ʱ0ʼʱ + 332 1 ET0 = 1; + 333 1 EA = 1; + 334 1 } + 335 + 336 /* ʱ0жϺ */ + 337 void Timer0_ISR(void) interrupt 1 + 338 { + 339 1 uchar i; + 340 1 if (++time_all_1s == 1000) + 341 1 time_all_1s = 0; + 342 1 Seg_Pos = (++Seg_Pos) % 8; + 343 1 if (Output_Record_flag) + 344 1 { + 345 2 if (Record_Data_Index == 0) + 346 2 { + 347 3 Output_Record_flag = 0; + 348 3 time_500ms = 0; + 349 3 } + 350 2 // ʱ + 351 2 if (++time_500ms == 500) + 352 2 { + 353 3 Record_Data_Index--; + 354 3 time_500ms = 0; + 355 3 } + 356 2 } + 357 1 else + 358 1 { + 359 2 time_500ms = 0; + 360 2 } + 361 1 // ˫µʱʼʱ + 362 1 if (Key_Two_Press) + 363 1 { + 364 2 if (++time_2s >= 2000) + C51 COMPILER V9.59.0.0 MAIN 05/02/2024 16:37:54 PAGE 7 + + 365 2 time_2s = 2001; + 366 2 } + 367 1 else + 368 1 { + 369 2 time_2s = 0; + 370 2 } + 371 1 // ʼ¼ + 372 1 if (Record_flag) + 373 1 { + 374 2 if (++time_6s == 6000) + 375 2 { + 376 3 time_6s = 0; + 377 3 Record_flag = 0; + 378 3 } + 379 2 } + 380 1 else + 381 1 { + 382 2 time_6s = 0; + 383 2 } + 384 1 if (++time_100ms == 100) + 385 1 { + 386 2 time_100ms = 0; + 387 2 Led_Blink_flag ^= 1; + 388 2 } + 389 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 390 1 for (i = 0; i < 8; i++) + 391 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 392 1 } + 393 void Delay750ms(void) //@12.000MHz + 394 { + 395 1 unsigned char data i, j, k; + 396 1 + 397 1 _nop_(); + 398 1 _nop_(); + 399 1 i = 35; + 400 1 j = 51; + 401 1 k = 182; + 402 1 do + 403 1 { + 404 2 do + 405 2 { + 406 3 while (--k) + 407 3 ; + 408 3 } while (--j); + 409 2 } while (--i); + 410 1 } + 411 + 412 void main() + 413 { + 414 1 System_Init(); + 415 1 Recover_Sys(); + 416 1 rd_temperature(); + 417 1 Delay750ms(); + 418 1 Timer0_Init(); + 419 1 while (1) + 420 1 { + 421 2 Data_Proc(); + 422 2 Key_Proc(); + 423 2 Seg_Proc(); + 424 2 Led_Proc(); + 425 2 } + 426 1 } + C51 COMPILER V9.59.0.0 MAIN 05/02/2024 16:37:54 PAGE 8 + + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 1938 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 76 2 + IDATA SIZE = ---- ---- + BIT SIZE = 5 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/onewire.lst b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/onewire.lst new file mode 100644 index 0000000..481851a --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/onewire.lst @@ -0,0 +1,125 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 05/02/2024 16:37:56 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit DQ = P1 ^ 4; // 单总线数据口 + 10 void Delay4us(void) //@12.000MHz + 11 { + 12 1 unsigned char data i; + 13 1 + 14 1 _nop_(); + 15 1 _nop_(); + 16 1 i = 9; + 17 1 while (--i) + 18 1 ; + 19 1 } + 20 + 21 // + 22 void Delay_OneWire(unsigned int t) + 23 { + 24 1 unsigned char i; + 25 1 while (t--) + 26 1 { + 27 2 for (i = 0; i < 12; i++) + 28 2 ; + 29 2 } + 30 1 } + 31 + 32 // + 33 void Write_DS18B20(unsigned char dat) + 34 { + 35 1 unsigned char i; + 36 1 for (i = 0; i < 8; i++) + 37 1 { + 38 2 DQ = 0; + 39 2 DQ = dat & 0x01; + 40 2 Delay_OneWire(5); + 41 2 DQ = 1; + 42 2 dat >>= 1; + 43 2 } + 44 1 Delay_OneWire(5); + 45 1 } + 46 + 47 // + 48 unsigned char Read_DS18B20(void) + 49 { + 50 1 unsigned char i; + 51 1 unsigned char dat; + 52 1 + 53 1 for (i = 0; i < 8; i++) + C51 COMPILER V9.59.0.0 ONEWIRE 05/02/2024 16:37:56 PAGE 2 + + 54 1 { + 55 2 DQ = 0; + 56 2 dat >>= 1; + 57 2 DQ = 1; + 58 2 Delay4us(); + 59 2 if (DQ) + 60 2 { + 61 3 dat |= 0x80; + 62 3 } + 63 2 Delay_OneWire(5); + 64 2 } + 65 1 return dat; + 66 1 } + 67 + 68 // + 69 bit init_ds18b20(void) + 70 { + 71 1 bit initflag = 0; + 72 1 + 73 1 DQ = 1; + 74 1 Delay_OneWire(12); + 75 1 DQ = 0; + 76 1 Delay_OneWire(80); + 77 1 DQ = 1; + 78 1 Delay_OneWire(10); + 79 1 initflag = DQ; + 80 1 Delay_OneWire(5); + 81 1 + 82 1 return initflag; + 83 1 } + 84 + 85 float rd_temperature() + 86 { + 87 1 unsigned char low, high; + 88 1 init_ds18b20(); + 89 1 Write_DS18B20(0xcc); // 跳过ROM + 90 1 Write_DS18B20(0x44); // 启动温度转换 + 91 1 Delay_OneWire(200); // 等待温度转换 + 92 1 init_ds18b20(); + 93 1 Write_DS18B20(0xcc); // 跳过ROM + 94 1 Write_DS18B20(0xbe); // 读取温度值 + 95 1 low = Read_DS18B20(); + 96 1 high = Read_DS18B20(); + 97 1 return (float)(high << 8 | low) * 0.0625; + 98 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 212 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/zuolan.m51 b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/zuolan.m51 new file mode 100644 index 0000000..723acd9 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Listings/zuolan.m51 @@ -0,0 +1,1290 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\iic.obj, .\Objects\onewire.obj, .\Objects\Ultrasonic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan. +>> m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\iic.obj (IIC) + .\Objects\onewire.obj (ONEWIRE) + .\Objects\Ultrasonic.obj (ULTRASONIC) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?SCDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?IMUL) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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_ + DATA 000DH 0004H UNIT ?DT?LED + 0011H 000FH *** GAP *** + BIT 0020H.0 0000H.5 UNIT ?BI?MAIN + BIT 0020H.5 0000H.1 UNIT _BIT_GROUP_ + 0020H.6 0000H.2 *** GAP *** + DATA 0021H 004CH UNIT ?DT?MAIN + IDATA 006DH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0007H UNIT ?PR?DELAY4US?ONEWIRE + 000AH 0001H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0420H UNIT ?C?LIB_CODE + CODE 042EH 02BEH UNIT ?PR?SEG_PROC?MAIN + CODE 06ECH 0206H UNIT ?PR?KEY_PROC?MAIN + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 2 + + + CODE 08F2H 00FBH UNIT ?PR?TIMER0_ISR?MAIN + CODE 09EDH 00D4H UNIT ?PR?LED_PROC?MAIN + CODE 0AC1H 00A9H UNIT ?PR?DATA_PROC?MAIN + CODE 0B6AH 008CH UNIT ?C_C51STARTUP + CODE 0BF6H 007BH UNIT ?PR?KEY_READ?KEY + CODE 0C71H 0073H UNIT ?PR?_UT_WAVE_DATA?ULTRASONIC + CODE 0CE4H 003CH UNIT ?PR?_SEG_DISP?SEG + CODE 0D20H 003BH UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 0D5BH 003AH UNIT ?PR?_LED_DISP?LED + CODE 0D95H 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 0DCAH 002BH UNIT ?C_INITSEG + CODE 0DF5H 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 0E1CH 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 0E43H 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 0E69H 0026H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0E8FH 0023H UNIT ?PR?RELAY?LED + CODE 0EB2H 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 0ED0H 001DH UNIT ?PR?MAIN?MAIN + CODE 0EEDH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0F0AH 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 0F24H 001AH UNIT ?PR?_DA_WRITE?IIC + CODE 0F3EH 001AH UNIT ?PR?UT_WAVE_INIT?ULTRASONIC + CODE 0F58H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 0F70H 0015H UNIT ?PR?RECOVER_SYS?MAIN + CODE 0F85H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0F9AH 0015H UNIT ?PR?I2CWAITACK?IIC + CODE 0FAFH 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 0FBEH 000FH UNIT ?PR?I2CSTART?IIC + CODE 0FCDH 000EH UNIT ?CO?SEG + CODE 0FDBH 000CH UNIT ?PR?I2CSTOP?IIC + CODE 0FE7H 0007H UNIT ?PR?DELAY12US?ULTRASONIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------------ +?PR?TIMER0_ISR?MAIN ----- ----- 0008H 0001H + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +?PR?_SEG_DISP?SEG ----- ----- ----- ----- + +--> ?CO?SEG + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?RECOVER_SYS?MAIN + +--> ?PR?RD_TEMPERATURE?ONEWIRE + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 3 + + + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?DATA_PROC?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.5 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?DELAY4US?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?DATA_PROC?MAIN ----- ----- 0009H 0001H + +--> ?PR?_UT_WAVE_DATA?ULTRASONIC + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +?PR?_UT_WAVE_DATA?ULTRASONIC ----- ----- 000AH 0003H + +--> ?PR?UT_WAVE_INIT?ULTRASONIC + +?PR?UT_WAVE_INIT?ULTRASONIC ----- ----- ----- ----- + +--> ?PR?DELAY12US?ULTRASONIC + +?PR?KEY_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +--> ?PR?RECOVER_SYS?MAIN + +?PR?LED_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_DA_WRITE?IIC + +--> ?PR?RELAY?LED + +?PR?_DA_WRITE?IIC ----- ----- ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CWAITACK?IIC ----- ----- ----- ----- + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 4 + + +?PR?I2CSTOP?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?RELAY?LED 0020H.5 0000H.1 ----- ----- + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:08F2H PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:0025H PUBLIC time_100ms + D:00C8H PUBLIC P5 + D:0026H PUBLIC DAC_limit_10x + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:0027H PUBLIC Para_Dis + D:0028H PUBLIC time_500ms + C:09EDH PUBLIC Led_Proc + D:0029H PUBLIC Seg_Point + D:00A8H PUBLIC IE + D:0031H PUBLIC T_value_10x + C:042EH PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:0033H PUBLIC Record_Data_Index + D:0034H PUBLIC Seg_Buf + C:06ECH PUBLIC Key_Proc + D:003CH PUBLIC Dis_value + D:00D8H PUBLIC CCON + C:0ED0H PUBLIC main + C:0F85H PUBLIC Timer0_Init + D:003EH PUBLIC Para_show_mode + D:003FH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + B:0020H.0 PUBLIC Key_lock + B:0020H.1 PUBLIC Key_Two_Press + D:0040H PUBLIC time_2s + D:0042H PUBLIC Para_T + D:0043H PUBLIC time_6s + D:0045H PUBLIC Record_Data + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:005DH PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 5 + + + D:005EH PUBLIC Dis_show_mode + D:008AH PUBLIC TL0 + D:005FH PUBLIC time_all_1s + B:0020H.2 PUBLIC Output_Record_flag + B:0088H.4 PUBLIC TR0 + B:0020H.3 PUBLIC Record_flag + B:0020H.4 PUBLIC Led_Blink_flag + D:0061H PUBLIC ucLed + C:0FAFH PUBLIC Delay750ms + C:0AC1H PUBLIC Data_Proc + D:0069H PUBLIC Speed + D:006BH PUBLIC FAC_show_mode + D:00D0H PUBLIC PSW + C:0F70H PUBLIC Recover_Sys + D:006CH PUBLIC Dis_Cail + ------- PROC RECOVER_SYS + C:0F70H LINE# 36 + C:0F70H LINE# 37 + C:0F70H LINE# 38 + C:0F73H LINE# 39 + C:0F76H LINE# 40 + C:0F79H LINE# 41 + C:0F7BH LINE# 42 + C:0F81H LINE# 43 + C:0F84H LINE# 44 + ------- ENDPROC RECOVER_SYS + ------- PROC DATA_PROC + ------- DO + D:0009H SYMBOL DAC_temp_100x + ------- ENDDO + C:0AC1H LINE# 46 + C:0AC1H LINE# 47 + C:0AC1H LINE# 49 + C:0AD0H LINE# 50 + C:0AD0H LINE# 52 + C:0ADDH LINE# 53 + C:0AE0H LINE# 54 + C:0AE0H LINE# 55 + C:0AEBH LINE# 56 + C:0AF5H LINE# 57 + C:0B00H LINE# 58 + C:0B05H LINE# 60 + C:0B2DH LINE# 61 + C:0B3BH LINE# 62 + C:0B46H LINE# 63 + C:0B46H LINE# 64 + C:0B46H LINE# 65 + C:0B55H LINE# 66 + C:0B55H LINE# 68 + C:0B69H LINE# 69 + C:0B69H LINE# 70 + ------- ENDPROC DATA_PROC + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 6 + + + D:0024H SYMBOL Key_Old + ------- ENDDO + C:06ECH LINE# 72 + C:06ECH LINE# 73 + C:06ECH LINE# 76 + C:06F2H LINE# 78 + C:0704H LINE# 80 + C:0709H LINE# 81 + C:0712H LINE# 82 + C:0718H LINE# 83 + C:071BH LINE# 84 + C:0721H LINE# 85 + C:0721H LINE# 87 + C:0723H LINE# 88 + C:0725H LINE# 89 + C:0730H LINE# 90 + C:0733H LINE# 91 + C:0733H LINE# 93 + C:073DH LINE# 95 + C:073FH LINE# 96 + C:0748H LINE# 97 + C:0748H LINE# 98 + C:0753H LINE# 99 + C:075AH LINE# 100 + C:075AH LINE# 101 + C:076CH LINE# 102 + C:076CH LINE# 103 + C:076CH LINE# 105 + C:0772H LINE# 106 + C:077AH LINE# 107 + C:0780H LINE# 108 + C:0782H LINE# 109 + C:078BH LINE# 110 + C:078BH LINE# 111 + C:078DH LINE# 112 + C:0790H LINE# 113 + C:0790H LINE# 114 + C:0791H LINE# 115 + C:0791H LINE# 117 + C:0797H LINE# 118 + C:079FH LINE# 119 + C:07AAH LINE# 120 + C:07AAH LINE# 121 + C:07AAH LINE# 123 + C:07B3H LINE# 124 + C:07C5H LINE# 126 + C:07CEH LINE# 127 + C:07DFH LINE# 129 + C:07E0H LINE# 131 + C:07E0H LINE# 133 + C:07E9H LINE# 134 + C:07F9H LINE# 136 + C:0802H LINE# 137 + C:0810H LINE# 139 + C:0811H LINE# 140 + C:0811H LINE# 141 + C:0811H LINE# 142 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 7 + + + C:0811H LINE# 144 + C:0817H LINE# 145 + C:0822H LINE# 146 + C:0834H LINE# 147 + C:0834H LINE# 148 + C:0834H LINE# 150 + C:083DH LINE# 151 + C:0855H LINE# 153 + C:085EH LINE# 154 + C:0876H LINE# 156 + C:0877H LINE# 157 + C:0877H LINE# 159 + C:0880H LINE# 160 + C:089EH LINE# 162 + C:08A4H LINE# 163 + C:08C0H LINE# 165 + C:08C1H LINE# 166 + C:08C1H LINE# 168 + C:08CAH LINE# 169 + C:08DBH LINE# 171 + C:08E1H LINE# 172 + C:08F1H LINE# 174 + C:08F1H LINE# 175 + C:08F1H LINE# 176 + C:08F1H LINE# 177 + C:08F1H LINE# 178 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:0003H SYMBOL Dis_Cail_Temp + ------- ENDDO + C:042EH LINE# 180 + C:042EH LINE# 181 + C:042EH LINE# 183 + C:0433H LINE# 184 + C:0445H LINE# 186 + C:045AH LINE# 187 + C:045AH LINE# 188 + C:045AH LINE# 190 + C:045DH LINE# 191 + C:0460H LINE# 192 + C:0473H LINE# 193 + C:0487H LINE# 194 + C:0494H LINE# 195 + C:0497H LINE# 196 + C:049EH LINE# 197 + C:049EH LINE# 198 + C:04A0H LINE# 200 + C:04B5H LINE# 202 + C:04E9H LINE# 204 + C:051DH LINE# 206 + C:051DH LINE# 207 + C:051FH LINE# 209 + C:051FH LINE# 210 + C:0522H LINE# 212 + C:053EH LINE# 214 + C:0552H LINE# 215 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 8 + + + C:0566H LINE# 216 + C:056AH LINE# 217 + C:056AH LINE# 218 + C:056DH LINE# 220 + C:056DH LINE# 221 + C:0574H LINE# 222 + C:0577H LINE# 223 + C:057CH LINE# 224 + C:0588H LINE# 225 + C:059CH LINE# 227 + C:05AEH LINE# 230 + C:05AFH LINE# 231 + C:05AFH LINE# 232 + C:05B2H LINE# 233 + C:05B7H LINE# 234 + C:05CCH LINE# 235 + C:05CCH LINE# 236 + C:05CCH LINE# 237 + C:05D3H LINE# 239 + C:05DCH LINE# 240 + C:05EEH LINE# 241 + C:05EEH LINE# 242 + C:05F1H LINE# 243 + C:05FDH LINE# 244 + C:05FDH LINE# 245 + C:05FFH LINE# 246 + C:0607H LINE# 247 + C:0607H LINE# 248 + C:060AH LINE# 249 + C:060DH LINE# 250 + C:060EH LINE# 251 + C:0611H LINE# 253 + C:0611H LINE# 254 + C:0614H LINE# 255 + C:0635H LINE# 257 + C:063DH LINE# 258 + C:063DH LINE# 259 + C:0640H LINE# 261 + C:0640H LINE# 262 + C:0647H LINE# 264 + C:064DH LINE# 265 + C:066BH LINE# 267 + C:069FH LINE# 269 + C:06B3H LINE# 270 + C:06C0H LINE# 271 + C:06C1H LINE# 272 + C:06C1H LINE# 273 + C:06C6H LINE# 274 + C:06C9H LINE# 276 + C:06D5H LINE# 277 + C:06E2H LINE# 278 + C:06EBH LINE# 279 + C:06EBH LINE# 280 + C:06EBH LINE# 281 + C:06EBH LINE# 282 + C:06EBH LINE# 283 + ------- ENDPROC SEG_PROC + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 9 + + + ------- PROC LED_PROC + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:09EDH LINE# 286 + C:09EDH LINE# 287 + C:09EDH LINE# 289 + C:09F0H LINE# 290 + C:0A0EH LINE# 291 + C:0A1AH LINE# 292 + C:0A1AH LINE# 293 + C:0A1AH LINE# 295 + C:0A25H LINE# 296 + C:0A36H LINE# 298 + C:0A36H LINE# 299 + C:0A42H LINE# 300 + C:0A42H LINE# 301 + C:0A57H LINE# 302 + C:0A5AH LINE# 303 + C:0A5AH LINE# 304 + C:0A5AH LINE# 306 + C:0A5AH LINE# 308 + C:0A69H LINE# 309 + C:0A6CH LINE# 310 + C:0A6EH LINE# 312 + C:0A6EH LINE# 314 + C:0A7DH LINE# 315 + C:0A83H LINE# 316 + C:0A83H LINE# 317 + C:0A83H LINE# 318 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:0F85H LINE# 324 + C:0F85H LINE# 325 + C:0F85H LINE# 326 + C:0F88H LINE# 327 + C:0F8BH LINE# 328 + C:0F8EH LINE# 329 + C:0F91H LINE# 330 + C:0F93H LINE# 331 + C:0F95H LINE# 332 + C:0F97H LINE# 333 + C:0F99H LINE# 334 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + ------- DO + D:0008H SYMBOL i + ------- ENDDO + C:08F2H LINE# 337 + C:090FH LINE# 340 + C:0920H LINE# 341 + C:0926H LINE# 342 + C:092EH LINE# 343 + C:0931H LINE# 344 + C:0931H LINE# 345 + C:0935H LINE# 346 + C:0935H LINE# 347 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 10 + + + C:0937H LINE# 348 + C:0939H LINE# 349 + C:0939H LINE# 351 + C:0945H LINE# 352 + C:0945H LINE# 353 + C:0947H LINE# 354 + C:0947H LINE# 355 + C:0947H LINE# 356 + C:0949H LINE# 358 + C:0949H LINE# 359 + C:094CH LINE# 360 + C:094CH LINE# 362 + C:094FH LINE# 363 + C:094FH LINE# 364 + C:0960H LINE# 365 + C:0966H LINE# 366 + C:0968H LINE# 368 + C:0968H LINE# 369 + C:096EH LINE# 370 + C:096EH LINE# 372 + C:0971H LINE# 373 + C:0971H LINE# 374 + C:0982H LINE# 375 + C:0982H LINE# 376 + C:0988H LINE# 377 + C:098AH LINE# 378 + C:098AH LINE# 379 + C:098CH LINE# 381 + C:098CH LINE# 382 + C:0992H LINE# 383 + C:0992H LINE# 384 + C:099AH LINE# 385 + C:099AH LINE# 386 + C:099CH LINE# 387 + C:09A1H LINE# 388 + C:09A1H LINE# 389 + C:09B4H LINE# 390 + C:09C2H LINE# 391 + C:09D2H LINE# 392 + ------- ENDPROC TIMER0_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0FAFH LINE# 393 + C:0FAFH LINE# 394 + C:0FAFH LINE# 397 + C:0FB0H LINE# 398 + C:0FB1H LINE# 399 + C:0FB3H LINE# 400 + C:0FB5H LINE# 401 + C:0FB7H LINE# 403 + C:0FB7H LINE# 405 + C:0FB7H LINE# 406 + C:0FB9H LINE# 408 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 11 + + + C:0FBBH LINE# 409 + C:0FBDH LINE# 410 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:0ED0H LINE# 412 + C:0ED0H LINE# 413 + C:0ED0H LINE# 414 + C:0ED3H LINE# 415 + C:0ED6H LINE# 416 + C:0ED9H LINE# 417 + C:0EDCH LINE# 418 + C:0EDFH LINE# 419 + C:0EDFH LINE# 420 + C:0EDFH LINE# 421 + C:0EE2H LINE# 422 + C:0EE5H LINE# 423 + C:0EE8H LINE# 424 + C:0EEBH LINE# 425 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + C:0E8FH PUBLIC Relay + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0D5BH PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:000DH SYMBOL temp + D:000EH SYMBOL temp_old + ------- ENDDO + C:0D5BH LINE# 5 + C:0D5BH LINE# 6 + C:0D5BH LINE# 10 + C:0D5EH LINE# 11 + C:0D6DH LINE# 13 + C:0D7BH LINE# 14 + C:0D81H LINE# 15 + C:0D81H LINE# 16 + C:0D86H LINE# 17 + C:0D8EH LINE# 18 + C:0D91H LINE# 19 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 12 + + + C:0D94H LINE# 20 + C:0D94H LINE# 21 + ------- ENDPROC _LED_DISP + ------- PROC RELAY + B:0020H.5 SYMBOL enable + ------- DO + D:000FH SYMBOL temp + D:0010H SYMBOL temp_old + ------- ENDDO + C:0E8FH LINE# 24 + C:0E8FH LINE# 25 + C:0E8FH LINE# 28 + C:0E92H LINE# 29 + C:0E97H LINE# 31 + C:0E9AH LINE# 32 + C:0EA0H LINE# 33 + C:0EA0H LINE# 34 + C:0EA3H LINE# 35 + C:0EABH LINE# 36 + C:0EAEH LINE# 37 + C:0EB1H LINE# 38 + C:0EB1H LINE# 39 + ------- ENDPROC RELAY + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0CE4H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0FCDH PUBLIC seg_dula + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:0CE4H LINE# 6 + C:0CE4H LINE# 7 + C:0CE4H LINE# 9 + C:0CE7H LINE# 10 + C:0CEFH LINE# 13 + C:0CFCH LINE# 14 + C:0D04H LINE# 15 + C:0D07H LINE# 18 + C:0D0EH LINE# 19 + C:0D11H LINE# 20 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 13 + + + C:0D14H LINE# 21 + C:0D1CH LINE# 22 + C:0D1FH LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0BF6H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0BF6H LINE# 2 + C:0BF6H LINE# 3 + C:0BF6H LINE# 4 + C:0BF8H LINE# 5 + C:0BFAH LINE# 6 + C:0BFCH LINE# 7 + C:0BFEH LINE# 8 + C:0C00H LINE# 9 + C:0C03H LINE# 10 + C:0C05H LINE# 11 + C:0C08H LINE# 12 + C:0C0AH LINE# 13 + C:0C0DH LINE# 14 + C:0C0FH LINE# 15 + C:0C12H LINE# 16 + C:0C14H LINE# 17 + C:0C16H LINE# 18 + C:0C18H LINE# 19 + C:0C1AH LINE# 20 + C:0C1CH LINE# 21 + C:0C1FH LINE# 22 + C:0C21H LINE# 23 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 14 + + + C:0C24H LINE# 24 + C:0C26H LINE# 25 + C:0C29H LINE# 26 + C:0C2BH LINE# 27 + C:0C2EH LINE# 28 + C:0C30H LINE# 29 + C:0C36H LINE# 30 + C:0C38H LINE# 31 + C:0C3AH LINE# 32 + C:0C3CH LINE# 33 + C:0C3EH LINE# 34 + C:0C40H LINE# 35 + C:0C43H LINE# 36 + C:0C45H LINE# 37 + C:0C48H LINE# 38 + C:0C4AH LINE# 39 + C:0C4DH LINE# 40 + C:0C4FH LINE# 41 + C:0C52H LINE# 42 + C:0C54H LINE# 43 + C:0C56H LINE# 44 + C:0C58H LINE# 45 + C:0C5AH LINE# 46 + C:0C5CH LINE# 47 + C:0C5FH LINE# 48 + C:0C61H LINE# 49 + C:0C64H LINE# 50 + C:0C66H LINE# 51 + C:0C69H LINE# 52 + C:0C6BH LINE# 53 + C:0C6EH LINE# 54 + C:0C70H LINE# 55 + C:0C70H LINE# 56 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0EEDH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0EEDH LINE# 3 + C:0EEDH LINE# 4 + C:0EEDH LINE# 5 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 15 + + + C:0EF0H LINE# 6 + C:0EF8H LINE# 7 + C:0EFBH LINE# 9 + C:0EFEH LINE# 10 + C:0F06H LINE# 11 + C:0F09H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0F0EH SYMBOL _I2C_Delay + C:0F24H PUBLIC _Da_Write + D:00B8H PUBLIC IP + C:0E43H PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + B:00A0H.0 PUBLIC scl + C:0FBEH PUBLIC I2CStart + C:0F58H PUBLIC _I2CSendAck + C:0D95H PUBLIC _I2CSendByte + C:0F9DH PUBLIC I2CWaitAck + C:0FDBH PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:0F0AH SYMBOL L?0022 + ------- PROC L?0021 + ------- ENDPROC L?0021 + C:0F0AH SYMBOL L?0022 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:0F0EH LINE# 12 + C:0F0EH LINE# 13 + C:0F0EH LINE# 15 + C:0F0EH LINE# 16 + C:0F0FH LINE# 17 + C:0F10H LINE# 18 + C:0F11H LINE# 19 + C:0F12H LINE# 20 + C:0F13H LINE# 21 + C:0F14H LINE# 22 + C:0F15H LINE# 23 + C:0F16H LINE# 24 + C:0F17H LINE# 25 + C:0F18H LINE# 26 + C:0F19H LINE# 27 + C:0F1AH LINE# 28 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 16 + + + C:0F1BH LINE# 29 + C:0F1CH LINE# 30 + C:0F1DH LINE# 31 + C:0F23H LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:0FBEH LINE# 35 + C:0FBEH LINE# 36 + C:0FBEH LINE# 37 + C:0FC0H LINE# 38 + C:0FC0H LINE# 39 + C:0FC3H LINE# 40 + C:0FC5H LINE# 41 + C:0FCAH LINE# 42 + C:0FCCH LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:0FDBH LINE# 46 + C:0FDBH LINE# 47 + C:0FDBH LINE# 48 + C:0FDDH LINE# 49 + C:0FDDH LINE# 50 + C:0FE0H LINE# 51 + C:0FE2H LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0D95H LINE# 56 + C:0D97H LINE# 57 + C:0D97H LINE# 60 + C:0DA3H LINE# 61 + C:0DA3H LINE# 62 + C:0DA5H LINE# 63 + C:0DAAH LINE# 64 + C:0DAEH LINE# 65 + C:0DAEH LINE# 66 + C:0DB0H LINE# 67 + C:0DB2H LINE# 69 + C:0DB2H LINE# 70 + C:0DB4H LINE# 71 + C:0DB4H LINE# 72 + C:0DB9H LINE# 73 + C:0DBBH LINE# 74 + C:0DBFH LINE# 75 + C:0DC4H LINE# 76 + C:0DC7H LINE# 78 + C:0DC9H LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:0E43H LINE# 82 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 17 + + + C:0E43H LINE# 83 + C:0E43H LINE# 86 + C:0E4FH LINE# 87 + C:0E4FH LINE# 88 + C:0E4FH LINE# 89 + C:0E52H LINE# 90 + C:0E56H LINE# 91 + C:0E59H LINE# 92 + C:0E5CH LINE# 93 + C:0E5EH LINE# 94 + C:0E63H LINE# 95 + C:0E66H LINE# 96 + C:0E68H LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + ------- PROC L?0023 + ------- ENDPROC L?0023 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:0F9DH LINE# 100 + C:0F9DH LINE# 101 + C:0F9DH LINE# 104 + C:0F9DH LINE# 105 + C:0FA0H LINE# 106 + C:0FA5H LINE# 107 + C:0FA7H LINE# 108 + C:0FACH LINE# 110 + C:0FAEH LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:0F58H LINE# 114 + C:0F58H LINE# 115 + C:0F58H LINE# 116 + C:0F5AH LINE# 117 + C:0F5FH LINE# 118 + C:0F64H LINE# 119 + C:0F64H LINE# 120 + C:0F67H LINE# 121 + C:0F69H LINE# 122 + C:0F6BH LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:0F24H LINE# 127 + C:0F26H LINE# 128 + C:0F26H LINE# 130 + C:0F29H LINE# 131 + C:0F2BH LINE# 132 + C:0F2EH LINE# 134 + C:0F30H LINE# 135 + C:0F33H LINE# 136 + C:0F38H LINE# 137 + C:0F3BH LINE# 138 + ------- ENDPROC _DA_WRITE + ------- ENDMOD IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 18 + + + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:0E69H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:0EB6H PUBLIC _Delay_OneWire + C:0003H PUBLIC Delay4us + C:0DF5H PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:0E1CH PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:0D20H PUBLIC rd_temperature + D:00D0H PUBLIC PSW + ------- PROC DELAY4US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0003H LINE# 10 + C:0003H LINE# 11 + C:0003H LINE# 14 + C:0004H LINE# 15 + C:0005H LINE# 16 + C:0007H LINE# 17 + C:0009H LINE# 19 + ------- ENDPROC DELAY4US + C:0EB2H SYMBOL L?0023 + ------- PROC L?0022 + ------- ENDPROC L?0022 + C:0EB2H SYMBOL L?0023 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:0EB6H LINE# 22 + C:0EB6H LINE# 23 + C:0EB6H LINE# 25 + C:0EC0H LINE# 26 + C:0EC0H LINE# 27 + C:0ECFH LINE# 29 + C:0ECFH LINE# 30 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:0DF5H LINE# 33 + C:0DF7H LINE# 34 + C:0DF7H LINE# 36 + C:0E03H LINE# 37 + C:0E03H LINE# 38 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 19 + + + C:0E05H LINE# 39 + C:0E09H LINE# 40 + C:0E0CH LINE# 41 + C:0E0EH LINE# 42 + C:0E12H LINE# 43 + C:0E15H LINE# 44 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:0E69H LINE# 48 + C:0E69H LINE# 49 + C:0E69H LINE# 53 + C:0E75H LINE# 54 + C:0E75H LINE# 55 + C:0E77H LINE# 56 + C:0E7BH LINE# 57 + C:0E7DH LINE# 58 + C:0E80H LINE# 59 + C:0E83H LINE# 60 + C:0E83H LINE# 61 + C:0E86H LINE# 62 + C:0E86H LINE# 63 + C:0E89H LINE# 64 + C:0E8CH LINE# 65 + C:0E8EH LINE# 66 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.5 SYMBOL initflag + ------- ENDDO + C:0E1CH LINE# 69 + C:0E1CH LINE# 70 + C:0E1CH LINE# 71 + C:0E1EH LINE# 73 + C:0E20H LINE# 74 + C:0E27H LINE# 75 + C:0E29H LINE# 76 + C:0E30H LINE# 77 + C:0E32H LINE# 78 + C:0E39H LINE# 79 + C:0E3DH LINE# 80 + C:0E40H LINE# 82 + C:0E42H LINE# 83 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:0D20H LINE# 85 + C:0D20H LINE# 86 + C:0D20H LINE# 88 + C:0D23H LINE# 89 + C:0D28H LINE# 90 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 20 + + + C:0D2DH LINE# 91 + C:0D34H LINE# 92 + C:0D37H LINE# 93 + C:0D3CH LINE# 94 + C:0D41H LINE# 95 + C:0D46H LINE# 96 + C:0D49H LINE# 97 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ULTRASONIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + B:00D8H.7 PUBLIC CF + D:00F9H PUBLIC CH + D:00A8H PUBLIC IE + D:00E9H PUBLIC CL + B:00D8H.6 PUBLIC CR + D:00B8H PUBLIC IP + C:0C71H PUBLIC _Ut_Wave_Data + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0F3EH PUBLIC Ut_Wave_Init + C:0FE7H PUBLIC Delay12us + B:0090H.1 PUBLIC Rx + B:0090H.0 PUBLIC Tx + D:00D0H PUBLIC PSW + ------- PROC DELAY12US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0FE7H LINE# 6 + C:0FE7H LINE# 7 + C:0FE7H LINE# 10 + C:0FE8H LINE# 11 + C:0FE9H LINE# 12 + C:0FEBH LINE# 13 + C:0FEDH LINE# 15 + ------- ENDPROC DELAY12US + ------- PROC UT_WAVE_INIT + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0F3EH LINE# 17 + C:0F3EH LINE# 18 + C:0F3EH LINE# 23 + C:0F4AH LINE# 24 + C:0F4AH LINE# 25 + C:0F4CH LINE# 26 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 21 + + + C:0F4FH LINE# 27 + C:0F51H LINE# 28 + C:0F54H LINE# 29 + C:0F57H LINE# 30 + ------- ENDPROC UT_WAVE_INIT + ------- PROC _UT_WAVE_DATA + D:000AH SYMBOL Cail + D:000BH SYMBOL speed + ------- DO + D:0006H SYMBOL time + ------- ENDDO + C:0C71H LINE# 32 + C:0C77H LINE# 33 + C:0C77H LINE# 35 + C:0C7CH LINE# 36 + C:0C7EH LINE# 39 + C:0C81H LINE# 41 + C:0C83H LINE# 42 + C:0C89H LINE# 44 + C:0C8BH LINE# 45 + C:0C8EH LINE# 46 + C:0C8EH LINE# 47 + C:0C96H LINE# 49 + C:0CDEH LINE# 50 + C:0CDEH LINE# 52 + C:0CDEH LINE# 53 + C:0CE0H LINE# 54 + C:0CE3H LINE# 55 + C:0CE3H LINE# 56 + ------- ENDPROC _UT_WAVE_DATA + ------- ENDMOD ULTRASONIC + + ------- MODULE ?C?FPADD + C:0015H PUBLIC ?C?FPADD + C:0011H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + + ------- MODULE ?C?FPMUL + C:0106H PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FPDIV + C:020FH PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FCAST + C:02B6H PUBLIC ?C?FCASTC + C:02B1H PUBLIC ?C?FCASTI + C:02ACH PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:02EAH PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?SCDIV + C:036BH PUBLIC ?C?SCDIV + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/02/2024 16:37:57 PAGE 22 + + + ------- ENDMOD ?C?SCDIV + + ------- MODULE ?C?IMUL + C:038DH PUBLIC ?C?IMUL + ------- ENDMOD ?C?IMUL + + ------- MODULE ?C?UIDIV + C:039FH PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:03F4H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + + ------- MODULE ?C?MEMSET + C:0402H PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?I2CRECEIVEBYTE?IIC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_I2CSENDACK?IIC + +Program Size: data=94.6 xdata=0 code=4077 +LINK/LOCATE RUN COMPLETE. 2 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/ExtDll.iex b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Init.obj b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Init.obj new file mode 100644 index 0000000..14ec6a9 Binary files /dev/null and b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Init.obj differ diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Key.obj b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Key.obj new file mode 100644 index 0000000..c66c97c Binary files /dev/null and b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Key.obj differ diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Led.obj b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Led.obj new file mode 100644 index 0000000..cbab87c Binary files /dev/null and b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Led.obj differ diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Seg.obj b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Seg.obj new file mode 100644 index 0000000..a528f92 Binary files /dev/null and b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Seg.obj differ diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Ultrasonic.obj b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..395100b Binary files /dev/null and b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/Ultrasonic.obj differ diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/iic.obj b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/iic.obj new file mode 100644 index 0000000..914b201 Binary files /dev/null and b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/iic.obj differ diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/main.obj b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/main.obj new file mode 100644 index 0000000..8b06eb7 Binary files /dev/null and b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/main.obj differ diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/onewire.obj b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/onewire.obj new file mode 100644 index 0000000..6c200e2 Binary files /dev/null and b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/onewire.obj differ diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan new file mode 100644 index 0000000..4df4400 Binary files /dev/null and b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan differ diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan.build_log.htm b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..7b193a0 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan.build_log.htm @@ -0,0 +1,47 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: STCMON51.DLL V1, 0, 10, 0 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\demo_zuolan_new\User\zuolan.uvproj +Project File Date: 03/28/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling iic.c... +compiling onewire.c... +compiling Ultrasonic.c... +linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?I2CRECEIVEBYTE?IIC +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_I2CSENDACK?IIC +Program Size: data=94.6 xdata=0 code=4077 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 2 Warning(s). +
+ + diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan.hex b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan.hex new file mode 100644 index 0000000..d0b1edd --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan.hex @@ -0,0 +1,302 @@ +:100DCA000861000000000000000008340A0A0A0A4C +:0E0DDA000A0A0A0A08290000000000000000B2 +:100F7000E4F55D75272875421EF56C756901756A83 +:050F80005475260A2251 +:100AC100AE5FAF607C017DF412039FED4C7076AD9B +:100AD1006AAC69AF6C120C718E3C8F3D300366C3FA +:100AE100E53D940AE53C9400500AE52675F00AA418 +:100AF100F5098038C3E53D945AE53C9400400575FD +:100B010009F48028C374059526FDE49400FCE53DB5 +:100B110024A6FFE53C34FFFE12038D7C007D6412A8 +:100B2100038D7D5012039FEF24F4F509AF09E533DE +:100B310025E02445F8760008A6070533E53375F06E +:100B41000C8485F033AE5FAF607C017DF412039FAE +:100B5100ED4C7014120D20E4FBFA7920784112015A +:080B6100061202EA8E318F3208 +:010B69002269 +:1006EC003003030208F1AE5FAF607C007D0A120399 +:1006FC009FED4C60030208F1120BF68F21E5246587 +:10070C0021FF5521F522E521F45FF523852124E510 +:10071C002464597012D200D201D3E54194D0E54043 +:10072C0094074003120F70300007E52460030208A1 +:10073C00F1C200AF227E00EF64047012055DE55D2E +:10074C0075F0038485F05DE4F53EF56BF55EE55DD3 +:10075C00146032147003020811240260030208F1C1 +:10076C00EF64054E7008055EE55E5401F55EE5220A +:10077C0064087002D203E522640960030208F1D216 +:10078C000275330B22E52264057008053EE53E54E4 +:10079C0001F53EE53E14603C0460030208F1AF2213 +:1007AC007E00EF64087012E527645A70047D0A809D +:1007BC0005E527240AFD8D2722EF64094E6003020C +:1007CC0008F1E527640A70047F5A8005E52724F6B2 +:1007DC00FF8F2722AF227E00EF64087010E5426481 +:1007EC00507003FD8004E54204FD8D4222EF640944 +:1007FC004E60030208F1E54270047F508004E5422C +:10080C0014FF8F4222E5226405700B056BE56B75B6 +:10081C00F0038485F06BE56B1460501470030208D0 +:10082C00C1240260030208F1AF227E00EF6408705D +:10083C0018AD6CED3395E0FCED645A4C70047DA65C +:10084C008004ED2405FD8D6C22EF64094E600302DB +:10085C0008F1AF6CEF3395E0FEBEFF07BFA6047F37 +:10086C005A8005E56C24FBFF8F6C22AF227E00EFD3 +:10087C006408701EE56AB4060BE569B427067C00B3 +:10088C007D008009E56A240AFDE43569FC8C698DDC +:10089C006A22EF64094E704DE56A640A4569700678 +:1008AC007E277F06800AE56A24F6FFE56934FFFEA1 +:1008BC008E698F6A22AF227E00EF64087011E526E4 +:1008CC00641470047D018004E52604FD8D2622EF5E +:1008DC0064094E7010E526640170047F148004E5F1 +:0508EC002614FF8F2619 +:0108F10022E4 +:10042E00E56CF404FBAE5FAF607C007D1412039F9D +:10043E00ED4C60030206EBE55D14700302056D14CE +:10044E0070030205AF240260030206EB752A01E475 +:10045E00F52FAE31AF32FC7D6412039F7C007D0A16 +:10046E0012039F8D34AE31AF327C007D0A12039F92 +:10047E007C007D0A12039F8D35AE31AF327C007D3C +:10048E000A12039F8D3675370BE55E600302051F5A +:10049E00F52EAE3CAF3D7C037DE812039FEF4E7010 +:1004AE00047F0A80008F38EF640A7019AE3CAF3DAE +:1004BE00FC7D6412039F7C007D0A12039FED4C703D +:1004CE00047F0A8014AE3CAF3D7C007D6412039F16 +:1004DE007C007D0A12039FAF058F39EF640A7019F5 +:1004EE00AE3CAF3DFC7D0A12039F7C007D0A1203D9 +:1004FE009FED4C70047F0A8014AE3CAF3D7C007DB6 +:10050E000A12039F7C007D0A12039FAF058F3A806B +:10051E0047752E01C3E53D94E8E53C940350047FF6 +:10052E000A800BAE3CAF3D7C037DE812039F8F38F3 +:10053E00AE3CAF3D7C007D6412039F7C007D0A12B1 +:10054E00039F8D39AE3CAF3D7C007D0A12039F7C2C +:10055E00007D0A12039F8D3AAE3CAF3D0206B7E412 +:10056E00F52FF52EF52A75340CE53E04F535753963 +:10057E000A75380A75370A75360AAF3E7E00EF7077 +:10058E0004E5278002E54275F00A84FD8D3AEF4EB0 +:10059E007004E5278002E54275F00A84AFF08F3BC8 +:1005AE002275340DE56B04F535E56B147003020608 +:1005BE00401470030206C1240260030206EBE4F548 +:1005CE002FF52EF52A75380A75370A75360AAF6C6F +:1005DE00EF3395E0FED3EF94F6EE6480947F5011E6 +:1005EE0075390BEB75F00A8475F00A8485F03A8044 +:1005FE000EC3EE64809480500A75390A753A0BEB7F +:10060E000206E4753932E56C75F00A12036BFF755C +:10061E00F00A12036BAFF0EFFD3395E04D70067EDE +:10062E000A7F0A80008F3AE56C75F00A12036B029E +:10063E0006E8E4F52FF52EF52A75370A75360AAE5B +:10064E0069AF6A7C037DE812039F7C007D0A12036A +:10065E009FED4C70047F0A8002AF058F38EF640A5D +:10066E007019AE69AF6AFC7D6412039F7C007D0A2F +:10067E0012039FED4C70047F0A8014AE69AF6A7C42 +:10068E00007D6412039F7C007D0A12039FAF058FCD +:10069E0039AE69AF6A7C007D0A12039F7C007D0A29 +:1006AE0012039F8D3AAE69AF6A7C007D0A12039FDA +:1006BE008D3B22E4F52EF52A752F0175390A753812 +:1006CE000A75370A75360AE52675F00A8475F00A3A +:0D06DE008485F03AE52675F00A8485F03B2E +:0106EB0022EC +:1009ED0030021EC3740B953325E02445F8E6FE084E +:1009FD00E6FF7C007D3312038D7D6412039F120F81 +:100A0D0024E55D14604714605824027069D3E53DF8 +:100A1D0094FFE53C940040117E007F087D017B0032 +:100A2D007A007961120402804DE4FFEFC3940874DB +:100A3D008094805041AE3DA8077401088002C333F5 +:100A4D00D8FC5EFE74612FF8A6060F80DE7E007F57 +:100A5D00077D007B007A00796112040275680180C0 +:100A6D00157E007F077D007B007A007962120402FB +:100A7D00A204E433F561AF277E00EF2405FDEE33CC +:100A8D00FCD3E53D9DE53C9C5024EF24FBFFEE346B +:100A9D00FFFEC3E53D9FE53C9E4013E54275F00A20 +:100AAD00A4FFC3E5329FE53195F050028001C3925A +:040ABD0005020E8F91 +:100F8500538E7F5389F0758A18758CFCC28DD28C6F +:050F9500D2A9D2AF2239 +:03000B000208F2F6 +:1008F200C0E0C0F0C083C082C0D075D000C000C0CC +:0D09020001C002C003C004C005C006C0074C +:10090F000560E5607002055FFFAE5FBE0309BFE8DB +:10091F0006755F00756000053FE53F5407F53F30F2 +:10092F000218E5337004C202F5280528AF287E00AF +:10093F00BE010ABFF4071533800075280030011976 +:10094F000541E54170020540C394D0E5409407404E +:10095F000E7540077541D180067540007541003016 +:10096F00031B0544E54470020543FFAE43BE171356 +:10097F00BF7010754300754400C2038006754300B5 +:10098F007544000525E52564647007F525A204B3B9 +:10099F0092047434253FF8E6FD7429253FF8E6FBF1 +:1009AF00AF3F120CE4750800C3E5089408748094F7 +:1009BF008050107461253FF8E6FDAF3F120D5B05C7 +:0309CF000880E5B8 +:1009D200D007D006D005D004D003D002D001D00079 +:0B09E200D0D0D082D083D0F0D0E03223 +:0E0FAF0000007F237E337DB6DDFEDEFCDFFA20 +:010FBD002211 +:100ED000120EED120F70120D20120FAF120F8512AD +:0D0EE0000AC11206EC12042E1209ED80F278 +:0C0DE800010D00010EFF010F000110FFC3 +:100D5B00ED600FA8077401088002C333D8FC420D65 +:100D6B00800EA8077401088002C333D8FCF4520D1F +:100D7B00E50D650E6013E50DF4F580E5A0541F44F9 +:090D8B0080F5A053A01F850D0E98 +:010D9400223C +:100E8F00300505430F108003530FEFE50F6510601A +:100E9F0011850F80E5A0541F44A0F5A053A01F8516 +:020EAF000F1022 +:010EB100221E +:0E0FCD00C0F9A4B0999282F88090FFBF8C8E7C +:100CE4007580FFE5A0541F44E0F5A0A8077401082F +:100CF4008002C333D8FCF580E5A0541F44C0F5A09E +:100D040053A01FED900FCD93F580EB600353807FCC +:0C0D1400E5A0541F44E0F5A053A01F22EE +:100BF600E4FFC2C4D2C2D2B5D2B420B3027F04206D +:100C0600B2027F0520B1027F0620B0027F07D2C460 +:100C1600C2C2D2B5D2B420B3027F0820B2027F0985 +:100C260020B1027F0A20B0027F0B20B30520B2025A +:100C36007F59D2C4D2C2C2B5D2B420B3027F0C202F +:100C4600B2027F0D20B1027F0E20B0027F0FD2C408 +:100C5600D2C2D2B5C2B420B3027F1020B2027F1135 +:0A0C660020B1027F1220B0027F13BC +:010C70002261 +:100EED007580FFE5A0541F4480F5A053A01FE4F5C5 +:0D0EFD0080E5A0541F44A0F5A053A01F22C3 +:040F0A00D2A07F05ED +:100F0E00000000000000000000000000000000AE25 +:060F1E00071FEE70EB223C +:0F0FBE00D2A1120F0AC2A17F05120F0EC2A022EC +:0C0FDB00C2A1120F0AD2A17F05020F0E66 +:020D9500AD07A8 +:100D9700E4FCECC39408748094805024C2A07F05BF +:100DA700120F0EED30E704D2A18002C2A17F051217 +:100DB7000F0ED2A0ED25E0FD7F05120F0E0C80D29D +:020DC700C2A0C8 +:010DC9002207 +:100E4300E4FCECC39408748094805017120F0AEDED +:100E530025E0FD30A103430501C2A07F05120F0E5B +:050E63000C80DFAF056B +:010E68002267 +:030F9A00120D95A0 +:100F9D00120F0AA2A1E433FDC2A07F05120F0EAFFE +:010FAD00053E +:010FAE002220 +:100F5800C2A0EF24FF92A17F05120F0E120F0AC242 +:080F6800A0D2A17F05020F0ECB +:100F2400AB07120FBE7F90120F9A7F41120F9AAF38 +:0A0F340003120D95120F9D020FDB52 +:0600030000007F09DFFE92 +:0100090022D4 +:040EB2007F057E003A +:100EB600EF1FAA0670011E4A600FE4FDEDC3940CF5 +:090EC6007480948050EA0D80F361 +:010ECF002200 +:020DF500A9074C +:100DF700E4FBEBC39408748094805012C294E91307 +:100E07009294120EB2D294E9C313F90B80E47F05D2 +:050E17007E00020EB692 +:100E6900E4FBEBC39408748094805017C294ECC3DC +:100E790013FCD294120003309403430480120EB27F +:050E89000B80DFAF0447 +:010E8E002241 +:100E1C00C205D2947F0C7E00120EB6C2947F507E17 +:100E2C0000120EB6D2947F0A7E00120EB6A29492D5 +:060E3C0005120EB2A20532 +:010E4200228D +:100D2000120E1C7FCC120DF57F44120DF57FC87E8C +:100D300000120EB6120E1C7FCC120DF57FBE120DE6 +:100D4000F5120E69A907120E69EFAD01FCEC120253 +:0B0D5000B1E4FBFA7980783D02010657 +:060FE70000007F21DFFE87 +:010FED0022E1 +:100F3E00E4FEEEC3940874809480500DD290120F8C +:090F4E00E7C290120FE70E80E9E2 +:010F57002277 +:060C71008F0A8C0B8D0CB4 +:100C7700E4F5E9F5F9F5D8120F3ED2DE30910330ED +:100C8700DFFAC2DE20DF50AFF9EFFEADE9EDFFACD2 +:100C970006E41202B17B007A40799C784612020F73 +:100CA700C004C005C006C007AC0BAD0CE41202B10E +:100CB700D003D002D001D000120106C004C005C085 +:100CC70006C007AC0AEC1202B6D003D002D001D09E +:0C0CD700001200150202EAC2DFE4FEFF7A +:010CE30022EE +:10000E00020356E86480F8E933E83360110460F0C7 +:10001E00ED33EC337009E8FCE9FDEAFEEBFF220458 +:10002E0060DED3EB9FEA9EE99DE8C2E78CF0C2F753 +:10003E0095F0400CE8CCF8E9CDF9EACEFAEBCFFB1F +:10004E0012032185D0F05804700320D5B3E8047054 +:10005E00075002B2D502036092D5EC0460F7E4CCEF +:10006E00C0E0C398F8603B94186008400DD0E0FBE8 +:10007E00020338E4FBFAC9FC8028E830E406E4C940 +:10008E00FBE4CAFCE830E305E4C9CACBFCE854073C +:10009E006010F8C3E913F9EA13FAEB13FBEC13FC47 +:1000AE00D8F130F52FC3E49CFCEF9BFFEE9AFEEDEA +:1000BE0099FDD0E0FBEF4E4D4C701222DB03020394 +:1000CE005DEC2CFCEF33FFEE33FEED33FDED30E750 +:1000DE00EB020338EF2BFFEE3AFEED39FDD0E0FBDD +:1000EE0050130BBB0003020360ED13FDEE13FEEF86 +:0800FE0013FFEC13FC020338B0 +:10010600EC4D6011E8497017ED33EC3304600DE4F3 +:10011600FCFFFEFD22E933E8330470F802035612B1 +:10012600032158046009E4CC2481500628500902B2 +:10013600036028400302035DC0E0EB4A7044B980C7 +:1001460006D0E0FB02034CEF4E701CBD8008EBFFAF +:10015600EAFEE9FD80EBE98DF0A4FEE5F00201EF91 +:10016600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89D4 +:10017600F0A42EFFE435F0CD89F0A42DFEE435F091 +:100186008067EF4E7005BD80D780C3EF8BF0A4ACBF +:10019600F0EE8BF0A42CFCE435F0F8EF8AF0A42CFA +:1001A600E5F038FCE433CB8DF0A42CFCE5F03BF80D +:1001B600EE8AF0A42CFCE5F038F8E433CF89F0A4FD +:1001C6002CFCE5F038CF3400CE89F0A42FFFE5F003 +:1001D6003EFEE433C98DF0A42EFEE5F039CD8AF05B +:1001E600A42FFFE5F03EFEE43DFD33D0E0FB5007D3 +:1001F6000BBB000F020360EC2CFCEF33FFEE33FE6B +:06020600ED33FD02033898 +:10020C00020360EC5D046005E859047003020356B8 +:10021C00120321580460F6EC4860F2EC7004FDFE09 +:10022C00FF22C860DB2481C85009C39860025006C5 +:10023C0002035D9850CAF582E9294B4A7005AB82DE +:10024C0002034C75F0007C1A7880C3EF9BEE9AED9C +:10025C0099400DC3EF9BFFEE9AFEED99FDE842F03D +:10026C00DC23ACF0D0E0FFD0E0FED0E0FDAB822090 +:10027C00E7101BEB60BAEC2CFCEF33FFEE33FEED1A +:10028C0033FD020338E803F830E705C0F075F000E1 +:10029C00EF2FFFEE33FEED33FD40B830E7C280AAFE +:1002AC0075F020800E75F010800575F0087D007ECD +:1002BC00007F003392D530D5031203F4EC33401099 +:1002CC00EF33FFEE33FEED33FDEC33FCD5F0ED22D6 +:0E02DC00E5F0247EA2D513CC92E7CDCEFF2212 +:1002EA00EDD2E7CD33EC3392D524814006E4FFFE0C +:1002FA00FDFC22FCE4CFCECDCC24E0501174FF806B +:10030A00EDC3CC13CCCD13CDCE13CECF13CF047007 +:07031A00F030D5DE0203F410 +:10032100E9D2E7C933E833F892D5EDD2E7CD33EC22 +:0703310033FC5002B2D5229B +:10033800EC30E7100FBF000C0EBE00080DBD000426 +:100348000BEB6014A2D5EB13FCED92E7FD2274FFD2 +:10035800FCFDFEFF22E480F8A2D574FF13FC7D802B +:03036800E480EF3F +:03000000020B6A86 +:0C0B6A00787FE4F6D8FD75816C020BB1B9 +:10036B00C2D530F707B2D563F0FF05F030E70CB21A +:10037B00D5F4048463F0FF05F080018430D502F4DA +:02038B0004224A +:10038D00EF8DF0A4A8F0CF8CF0A428CE8DF0A42E84 +:02039D00FE223E +:10039F00BC000BBE0029EF8DF084FFADF022E4CC42 +:1003AF00F875F008EF2FFFEE33FEEC33FCEE9DEC0B +:1003BF00984005FCEE9DFE0FD5F0E9E4CEFD22ED51 +:1003CF00F8F5F0EE8420D21CFEADF075F008EF2F9B +:1003DF00FFED33FD4007985006D5F0F222C398FD8C +:0503EF000FD5F0EA2229 +:0E03F400C3E49FFFE49EFEE49DFDE49CFC221A +:10040200EF4E6012EF60010EEDBB010B89828A8311 +:10041200F0A3DFFCDEFA2289F05007F709DFFCA91E +:0C042200F022BBFEFCF309DFFCA9F02275 +:100B7600020ED0E493A3F8E493A34003F68001F2B7 +:100B860008DFF48029E493A3F85407240CC8C33380 +:100B9600C4540F4420C8834004F456800146F6DF4F +:100BA600E4800B0102040810204080900DCAE47E08 +:100BB600019360BCA3FF543F30E509541FFEE49344 +:100BC600A360010ECF54C025E060A840B8E493A30B +:100BD600FAE493A3F8E493A3C8C582C8CAC583CA36 +:100BE600F0A3C8C582C8CAC583CADFE9DEE780BEEE +:010DF40000FE +:00000001FF diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan.lnp b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan.lnp new file mode 100644 index 0000000..7e06a28 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/Objects/zuolan.lnp @@ -0,0 +1,10 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\iic.obj", +".\Objects\onewire.obj", +".\Objects\Ultrasonic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/main.c b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/main.c new file mode 100644 index 0000000..8a7fd25 --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/main.c @@ -0,0 +1,426 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС +/* */ +uint T_value_10x; // ¶Ȳֵ10 +uint Dis_value; // ĬΪcm +uchar Para_Dis; // +uchar Para_T; // ¶Ȳ +char Dis_Cail; // У׼ֵ +uint Speed; // ٶ +uchar DAC_limit_10x; // 10dac +uint Record_Data[12]; +uchar Record_Data_Index; +/* ʾ */ +uchar Seg_show_mode; // 0 1 2 +uchar Dis_show_mode; // 0 cm 1 m +uchar Para_show_mode; // 0 1 ¶ +uchar FAC_show_mode; // 0 У׼ 1 2 DAC +/* ʱ */ +uint time_all_1s; +uint time_6s; +uint time_2s; +uchar time_100ms; +uchar time_500ms; +/* ж */ +bit Record_flag; // ڼ¼ı־ +bit Key_lock; // ס +bit Key_Two_Press; // ˫ +bit Led_Blink_flag; // LED˸־ +bit Output_Record_flag; // ¼ +void Recover_Sys() +{ + Seg_show_mode = 0; + Para_Dis = 40; + Para_T = 30; + Dis_Cail = 0; + Speed = 340; + DAC_limit_10x = 10; +} +/* ݴ */ +void Data_Proc() +{ + uchar DAC_temp_100x; + if (time_all_1s % 500 == 0) + { + // ȡ + Dis_value = Ut_Wave_Data(Dis_Cail, Speed); + if (Record_flag) + { + if (Dis_value < 10) + DAC_temp_100x = DAC_limit_10x * 10; + else if (Dis_value >= 90) + DAC_temp_100x = 500; + else + DAC_temp_100x = (5 - DAC_limit_10x) * (Dis_value - 90) * 100 / 80 + 500; + Record_Data[Record_Data_Index] = DAC_temp_100x; + Record_Data_Index = (++Record_Data_Index) % 12; + } + } + if (time_all_1s % 500 == 0) + { + // ¶ȶȡ + T_value_10x = rd_temperature() * 10; + } +} +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + // ڼ¼ֱжʧЧ + if (Record_flag) + return; + if (time_all_1s % 10) + return; + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Old == 89) + { + // ڿʼ + Key_lock = 1; + Key_Two_Press = 1; + if (time_2s > 2000) + Recover_Sys(); + } + // ̣ + if (Key_lock && Key_Old) + return; + Key_lock = 0; + if (Key_Down == 4) + { + Seg_show_mode = (++Seg_show_mode) % 3; + Dis_show_mode = FAC_show_mode = Para_show_mode = 0; + } + switch (Seg_show_mode) + { + case 0: + /* */ + if (Key_Down == 5) + Dis_show_mode = (++Dis_show_mode) % 2; + if (Key_Down == 8) + Record_flag = 1; + if (Key_Down == 9) + { + Output_Record_flag = 1; + Record_Data_Index = 11; + } + break; + case 1: + /* */ + if (Key_Down == 5) + Para_show_mode = (++Para_show_mode) % 2; + switch (Para_show_mode) + { + case 0: + /* */ + if (Key_Down == 8) + Para_Dis = (Para_Dis == 90) ? 10 + : Para_Dis + 10; + else if (Key_Down == 9) + Para_Dis = (Para_Dis == 10) ? 90 + : Para_Dis - 10; + break; + + case 1: + /* ¶ */ + if (Key_Down == 8) + Para_T = (Para_T == 80) ? 0 + : Para_T + 1; + else if (Key_Down == 9) + Para_T = (Para_T == 0) ? 80 + : Para_T - 1; + break; + } + break; + case 2: + /* */ + if (Key_Down == 5) + FAC_show_mode = (++FAC_show_mode) % 3; + switch (FAC_show_mode) + { + case 0: + /* У׼ֵ */ + if (Key_Down == 8) + Dis_Cail = (Dis_Cail == 90) ? -90 + : Dis_Cail + 5; + else if (Key_Down == 9) + Dis_Cail = (Dis_Cail == -90) ? 90 + : Dis_Cail - 5; + break; + case 1: + /* */ + if (Key_Down == 8) + Speed = (Speed == 9990) ? 0 + : Speed + 10; + else if (Key_Down == 9) + Speed = (Speed == 10) ? 9990 + : Speed - 10; + break; + case 2: + /* DAC */ + if (Key_Down == 8) + DAC_limit_10x = (DAC_limit_10x == 20) ? 1 + : DAC_limit_10x + 1; + else if (Key_Down == 9) + DAC_limit_10x = (DAC_limit_10x == 1) ? 20 + : DAC_limit_10x - 1; + break; + } + break; + } +} +/* ܴ */ +void Seg_Proc() +{ + uchar Dis_Cail_Temp; + Dis_Cail_Temp = -Dis_Cail; + if (time_all_1s % 20) + return; + switch (Seg_show_mode) + { + case 0: + /* */ + Seg_Point[1] = 1; + Seg_Point[6] = 0; + Seg_Buf[0] = T_value_10x / 100 % 10; + Seg_Buf[1] = T_value_10x / 10 % 10; + Seg_Buf[2] = T_value_10x % 10; + Seg_Buf[3] = 11; //- + if (Dis_show_mode == 0) + { + Seg_Point[5] = 0; + // ʾcm + Seg_Buf[4] = (Dis_value / 1000 == 0) ? 10 + : Dis_value / 1000; + Seg_Buf[5] = (Seg_Buf[4] == 10 && Dis_value / 100 % 10 == 0) ? 10 + : Dis_value / 100 % 10; + Seg_Buf[6] = (Seg_Buf[5] == 10 && Dis_value / 10 % 10 == 0) ? 10 + : Dis_value / 10 % 10; + Seg_Buf[7] = Dis_value % 10; + } + else + { + Seg_Point[5] = 1; + // ʾm + Seg_Buf[4] = (Dis_value < 1000) ? 10 + : Dis_value / 1000; + Seg_Buf[5] = Dis_value / 100 % 10; + Seg_Buf[6] = Dis_value / 10 % 10; + Seg_Buf[7] = Dis_value % 10; + } + break; + + case 1: + Seg_Point[1] = Seg_Point[5] = Seg_Point[6] = 0; + Seg_Buf[0] = 12; // P + Seg_Buf[1] = Para_show_mode + 1; + Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + Seg_Buf[6] = (Para_show_mode == 0) ? Para_Dis / 10 + : Para_T / 10; + Seg_Buf[7] = (Para_show_mode == 0) ? Para_Dis % 10 + : Para_T % 10; + + break; + case 2: + Seg_Buf[0] = 13; // F + Seg_Buf[1] = FAC_show_mode + 1; + switch (FAC_show_mode) + { + case 0: + Seg_Point[1] = Seg_Point[5] = Seg_Point[6] = 0; + /* У׼ */ + Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + if (Dis_Cail <= -10) + { + Seg_Buf[5] = 11; //- + Seg_Buf[6] = Dis_Cail_Temp / 10 % 10; + Seg_Buf[7] = Dis_Cail_Temp % 10; + } + else if (Dis_Cail < 0) + { + Seg_Buf[5] = 10; + Seg_Buf[6] = 11; //- + Seg_Buf[7] = Dis_Cail_Temp % 10; + } + else + { + Seg_Buf[5] = 50; + Seg_Buf[6] = (Dis_Cail / 10 % 10 == 0) ? 10 + : Dis_Cail / 10 % 10; + Seg_Buf[7] = Dis_Cail % 10; + } + break; + + case 1: + Seg_Point[1] = Seg_Point[5] = Seg_Point[6] = 0; + /* */ + Seg_Buf[2] = Seg_Buf[3] = 10; + Seg_Buf[4] = (Speed / 1000 % 10 == 0) ? 10 + : Speed / 1000 % 10; + Seg_Buf[5] = (Seg_Buf[4] == 10 && Speed / 100 % 10 == 0) ? 10 + : Speed / 100 % 10; + Seg_Buf[6] = Speed / 10 % 10; + Seg_Buf[7] = Speed % 10; + break; + case 2: + Seg_Point[1] = Seg_Point[5] = 0; + Seg_Point[6] = 1; + /* DAC */ + Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + Seg_Buf[6] = DAC_limit_10x / 10 % 10; + Seg_Buf[7] = DAC_limit_10x % 10; + break; + } + break; + } +} + +/* LED */ +void Led_Proc() +{ + uchar i; + if (Output_Record_flag) + Da_Write(Record_Data[11 - Record_Data_Index] * 51 / 100); + switch (Seg_show_mode) + { + case 0: + /* */ + if (Dis_value > 255) + memset(ucLed, 1, 8); + else + { + for (i = 0; i < 8; i++) + { + ucLed[i] = Dis_value & (0x01 << i); + } + } + break; + + case 1: + /* */ + memset(ucLed, 0, 7); + ucLed[7] = 1; + break; + + case 2: + /* */ + memset(ucLed + 1, 0, 7); + ucLed[0] = Led_Blink_flag; + break; + } + Relay(Dis_value <= Para_Dis + 5 && + Dis_value >= Para_Dis - 5 && + T_value_10x < Para_T * 10); +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + uchar i; + if (++time_all_1s == 1000) + time_all_1s = 0; + Seg_Pos = (++Seg_Pos) % 8; + if (Output_Record_flag) + { + if (Record_Data_Index == 0) + { + Output_Record_flag = 0; + time_500ms = 0; + } + // ʱ + if (++time_500ms == 500) + { + Record_Data_Index--; + time_500ms = 0; + } + } + else + { + time_500ms = 0; + } + // ˫µʱʼʱ + if (Key_Two_Press) + { + if (++time_2s >= 2000) + time_2s = 2001; + } + else + { + time_2s = 0; + } + // ʼ¼ + if (Record_flag) + { + if (++time_6s == 6000) + { + time_6s = 0; + Record_flag = 0; + } + } + else + { + time_6s = 0; + } + if (++time_100ms == 100) + { + time_100ms = 0; + Led_Blink_flag ^= 1; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + for (i = 0; i < 8; i++) + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} + +void main() +{ + System_Init(); + Recover_Sys(); + rd_temperature(); + Delay750ms(); + Timer0_Init(); + while (1) + { + Data_Proc(); + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/main.h b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/main.h new file mode 100644 index 0000000..67b10cf --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/main.h @@ -0,0 +1,13 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "iic.h" +#include "Init.h" +#include "onewire.h" +#include "Ultrasonic.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/zuolan.uvgui.haze b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/zuolan.uvgui.haze new file mode 100644 index 0000000..950136a --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/zuolan.uvgui.haze @@ -0,0 +1,2619 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 131 259 + + + 346 + Code Coverage + 882 240 + + + 204 + Performance Analyzer + 1122 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 0 + 1 + + -32000 + -32024 + + + -1 + -1 + + + 0 + 1 + 1537 + 790 + + + + 0 + + 405 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000000000000100000031433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6E65775C557365725C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF32433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6E65775C4472697665725C4949432E4300000000054949432E4300000000FFDC7800FFFFFFFF39433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5F6E65775C4472697665725C554C545241534F4E49432E43000000000C554C545241534F4E49432E4300000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000009D01000086000000F90500002C020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 9D0100008600000079040000F3000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000DC010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000DC010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000DC010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000DC010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000000D020000F0050000DC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000010020000ED050000C3020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000DC010000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000010020000ED050000C3020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000010020000ED050000C3020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000DC020000F0050000EF020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E6500200000000000009D0100008600000079040000F3000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E90200008600000079040000D7010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000F5010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000900000086000000990100002C020000000000004F00000090010000F50100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000009000000C701000079040000480200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000F5010000F0050000F901000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B401000077940000018000800000010000000900000030020000F90500001303000000000000F9010000F0050000DC0200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2155 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000046461743296000000000000001000046461743203646174134C65645F426C696E6B5F466C61675F46726571014804434F4C3404434F4C3304434F4C3204434F4C3104524F573404524F573304524F573204524F5731035032330250310373627502736200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + 1 + Debug + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000000060000B7000000 + + + 16 + 9D0100008600000009060000EE000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000059010000 + + + 16 + A4000000D30000003402000063020000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E4010000 + + + 16 + A4000000D30000008701000076020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000ED050000C3020000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000F505000041020000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000F505000041020000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000F505000041020000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + FF0200008D010000ED050000C3020000 + + + 16 + A4000000D30000003402000063020000 + + + + 1936 + 1936 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000ED050000C3020000 + + + 16 + A4000000D30000003402000063020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000F505000041020000 + + + 16 + A4000000D30000003402000063020000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000F505000041020000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000F505000041020000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000F505000041020000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000F505000041020000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E4010000 + + + 16 + A4000000D30000008701000076020000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E4010000 + + + 16 + A4000000D30000008701000076020000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0000000076010000F8020000DC020000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000F505000041020000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000059010000 + + + 16 + A4000000D30000008701000076020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + A4000000D30000008701000076020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000F505000041020000 + + + 16 + A4000000D30000003402000063020000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + FF0200008D010000F505000041020000 + + + 16 + A4000000D30000003402000063020000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000DC020000F0050000EF020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2618 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000B700000000060000BB000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E6500200000000000009D0100008600000009060000EE000000940100004F00000000060000B70000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008C010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E90200008600000079040000C3010000E00200004F000000700400008C0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000072010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000009000000860000009901000034020000000000004F00000090010000720100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000072010000F0050000760100000100000001000010040000000100000060FEFFFF7F00000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB090000018000800000010000000D03000038020000090600001C030000FC02000076010000F0050000DC02000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFFF802000076010000FC020000DC02000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000008C0100007004000090010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000000000009000000C7010000790400002F020000000000009001000070040000F80100000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2155 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000046461743296000000000000001000046461743203646174134C65645F426C696E6B5F466C61675F46726571014804434F4C3404434F4C3304434F4C3204434F4C3104524F573404524F573304524F573204524F5731035032330250310373627502736200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020003001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 0 + + .\main.c + 11 + 284 + 288 + 1 + + 0 + + + ..\Driver\iic.c + 0 + 33 + 16 + 1 + + 0 + + + ..\Driver\Ultrasonic.c + 4 + 26 + 40 + 1 + + 0 + + + + +
diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/zuolan.uvopt b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/zuolan.uvopt new file mode 100644 index 0000000..d6c986f --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/zuolan.uvopt @@ -0,0 +1,317 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 12000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + + + + + + + + + + + BIN\STCMON51.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 + STCMON51 + -S3 -B115200 -O0 -U0 + + + + + 0 + 0 + 379 + 1 +
-16774776
+ 0 + 0 + 0 + 0 + 0 + 1 + MAIN.C + + \\zuolan\MAIN\379 +
+
+ + + 0 + 1 + Dis_Cail,0x0A + + + 1 + 1 + T_value_10x + + + 2 + 1 + Record_Data,0x0A + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + +
+
+ + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Ultrasonic.c + Ultrasonic.c + 0 + 0 + + + +
diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/zuolan.uvproj b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/zuolan.uvproj new file mode 100644 index 0000000..ddc086f --- /dev/null +++ b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/14 第十四届国赛(DA输出有误)_左岚/User/zuolan.uvproj @@ -0,0 +1,415 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 10 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + iic.c + 1 + ..\Driver\iic.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + Ultrasonic.c + 1 + ..\Driver\Ultrasonic.c + + + + + + + +
diff --git a/题目/真题/14 第十四届国赛(DA输出有误)_左岚/第十四届国赛.png b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/第十四届国赛.png new file mode 100644 index 0000000..c759177 Binary files /dev/null and b/题目/真题/14 第十四届国赛(DA输出有误)_左岚/第十四届国赛.png differ diff --git a/题目/真题/14 第十四届省赛_左岚/第14届省赛-DS18B20,DS1302,ADC采集.pdf b/题目/真题/14 第十四届省赛_左岚/第14届省赛-DS18B20,DS1302,ADC采集.pdf new file mode 100644 index 0000000..85f2494 Binary files /dev/null and b/题目/真题/14 第十四届省赛_左岚/第14届省赛-DS18B20,DS1302,ADC采集.pdf differ diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛.jpeg b/题目/真题/14 第十四届省赛_左岚/第十四届省赛.jpeg new file mode 100644 index 0000000..21f5eb5 Binary files /dev/null and b/题目/真题/14 第十四届省赛_左岚/第十四届省赛.jpeg differ diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/.vscode/settings.json b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/.vscode/settings.json new file mode 100644 index 0000000..63da58a --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/.vscode/settings.json @@ -0,0 +1,12 @@ +{ + "files.associations": { + "stc15f2k60s2.h": "c", + "reg52.h": "c", + "onewire.h": "c", + "REG52.H": "cpp", + "iic.h": "c", + "main.h": "c", + "key.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Key.c b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Key.c new file mode 100644 index 0000000..94a723a --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Key.c @@ -0,0 +1,59 @@ +#include "Key.h" + +unsigned char Key_Read() +{ + + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Key.h b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Led.c b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Led.c new file mode 100644 index 0000000..3bbedfb --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Led.c @@ -0,0 +1,19 @@ +#include "Led.h" + +void Led_Disp(unsigned char addr, bit enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Led.h b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Led.h new file mode 100644 index 0000000..721180d --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Led.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.h" +void Led_Disp(unsigned char addr, bit enable); \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Seg.c b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Seg.c new file mode 100644 index 0000000..2988681 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Seg.c @@ -0,0 +1,24 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 +// - C H F P E A +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0xbf, 0xc6, 0x89, 0x8e, 0x8c, 0x86, 0x88}; +// λѡ +unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; // 0111 1111С + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Seg.h b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/ds1302.c b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/ds1302.c new file mode 100644 index 0000000..1fffadc --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/ds1302.c @@ -0,0 +1,90 @@ +/* # DS1302代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "ds1302.h" +#include "reg52.h" +#include "intrins.h" + +sbit SCK = P1 ^ 7; +sbit SDA = P2 ^ 3; +sbit RST = P1 ^ 3; +// +void Write_Ds1302(unsigned char temp) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + SCK = 0; + SDA = temp & 0x01; + temp >>= 1; + SCK = 1; + } +} + +// +void Write_Ds1302_Byte(unsigned char address, unsigned char dat) +{ + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST = 0; +} + +// +unsigned char Read_Ds1302_Byte(unsigned char address) +{ + unsigned char i, temp = 0x00; + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + for (i = 0; i < 8; i++) + { + SCK = 0; + temp >>= 1; + if (SDA) + temp |= 0x80; + SCK = 1; + } + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + SCK = 1; + _nop_(); + SDA = 0; + _nop_(); + SDA = 1; + _nop_(); + return (temp); +} + +void Set_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + Write_Ds1302_Byte(0x8e, 0x00); + for (i = 0; i < 3; i++) + { + Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + } + Write_Ds1302_Byte(0x8e, 0x80); +} + +void Read_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + for (i = 0; i < 3; i++) + { + ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + } +} \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/ds1302.h b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/ds1302.h new file mode 100644 index 0000000..e8bfdf4 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/ds1302.h @@ -0,0 +1,2 @@ +void Set_Rtc(unsigned char *ucRtc); +void Read_Rtc(unsigned char *ucRtc); \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/iic.c b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/iic.c new file mode 100644 index 0000000..dad245b --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/iic.c @@ -0,0 +1,143 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + // 开始获取数据 + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + + I2CStart(); + I2CSendByte(0x91); + I2CWaitAck(); + temp = I2CReceiveByte(); + I2CSendAck(1); + I2CStop(); + return temp; +} diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/iic.h b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/iic.h new file mode 100644 index 0000000..e521ba5 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/iic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Ad_Read(unsigned char addr); diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/init.c b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/init.c new file mode 100644 index 0000000..5989444 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/init.c @@ -0,0 +1,11 @@ +#include "init.h" +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/init.h b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/init.h new file mode 100644 index 0000000..193ad94 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/init.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void System_Init(); \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/onewire.c b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/onewire.c new file mode 100644 index 0000000..3ce2dc5 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/onewire.c @@ -0,0 +1,86 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "reg52.h" +sbit DQ = P1 ^ 4; +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} +float rd_temperature() +{ + unsigned char low, high; + // 温度转换 + init_ds18b20(); + Write_DS18B20(0xcc); + Write_DS18B20(0x44); + // 温度读取 + init_ds18b20(); + Write_DS18B20(0xcc); + Write_DS18B20(0xbe); + + low = Read_DS18B20(); + high = Read_DS18B20(); + return (high << 8 | low) / 16.0; +} \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/onewire.h b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/Key.lst b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/Key.lst new file mode 100644 index 0000000..9956d97 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/Key.lst @@ -0,0 +1,85 @@ +C51 COMPILER V9.59.0.0 KEY 03/19/2024 17:03:06 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG + - OBJECTEXTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 + 3 unsigned char Key_Read() + 4 { + 5 1 + 6 1 unsigned char temp = 0; + 7 1 ET0 = 0; + 8 1 P44 = 0; + 9 1 P42 = 1; + 10 1 P35 = 1; + 11 1 P34 = 1; + 12 1 if (P33 == 0) + 13 1 temp = 4; + 14 1 if (P32 == 0) + 15 1 temp = 5; + 16 1 if (P31 == 0) + 17 1 temp = 6; + 18 1 if (P30 == 0) + 19 1 temp = 7; + 20 1 P44 = 1; + 21 1 P42 = 0; + 22 1 P35 = 1; + 23 1 P34 = 1; + 24 1 if (P33 == 0) + 25 1 temp = 8; + 26 1 if (P32 == 0) + 27 1 temp = 9; + 28 1 if (P31 == 0) + 29 1 temp = 10; + 30 1 if (P30 == 0) + 31 1 temp = 11; + 32 1 P44 = 1; + 33 1 P42 = 1; + 34 1 P35 = 0; + 35 1 P34 = 1; + 36 1 if (P33 == 0) + 37 1 temp = 12; + 38 1 if (P32 == 0) + 39 1 temp = 13; + 40 1 if (P31 == 0) + 41 1 temp = 14; + 42 1 if (P30 == 0) + 43 1 temp = 15; + 44 1 P44 = 1; + 45 1 P42 = 1; + 46 1 P35 = 1; + 47 1 P34 = 0; + 48 1 if (P33 == 0) + 49 1 temp = 16; + 50 1 if (P32 == 0) + 51 1 temp = 17; + 52 1 if (P31 == 0) + 53 1 temp = 18; + 54 1 if (P30 == 0) + C51 COMPILER V9.59.0.0 KEY 03/19/2024 17:03:06 PAGE 2 + + 55 1 temp = 19; + 56 1 ET0 = 1; + 57 1 P3 = 0xff; + 58 1 return temp; + 59 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/Led.lst b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/Led.lst new file mode 100644 index 0000000..bb93831 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/Led.lst @@ -0,0 +1,43 @@ +C51 COMPILER V9.59.0.0 LED 03/19/2024 17:03:06 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG + - OBJECTEXTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 + 3 void Led_Disp(unsigned char addr, bit enable) + 4 { + 5 1 static unsigned char temp = 0x00; + 6 1 static unsigned char temp_old = 0xff; + 7 1 if (enable) + 8 1 temp |= 0x01 << addr; + 9 1 else + 10 1 temp &= ~(0x01 << addr); + 11 1 + 12 1 if (temp != temp_old) + 13 1 { + 14 2 P0 = ~temp; + 15 2 P2 = P2 & 0x1f | 0x80; + 16 2 P2 &= 0x1f; + 17 2 temp_old = temp; + 18 2 } + 19 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 58 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 2 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/Seg.lst b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/Seg.lst new file mode 100644 index 0000000..094195d --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/Seg.lst @@ -0,0 +1,48 @@ +C51 COMPILER V9.59.0.0 SEG 03/19/2024 17:03:06 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG + - OBJECTEXTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 + 3 // - C H F P E A + 4 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 5 0xbf, 0xc6, 0x89, 0x8e, 0x8c, 0x86, 0x88}; + 6 // λѡ + 7 unsigned char seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 8 + 9 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 10 { + 11 1 // ֶ + 12 1 P0 = 0xff; + 13 1 P2 = P2 & 0x1f | 0xe0; + 14 1 + 15 1 P0 = seg_wela[wela]; + 16 1 P2 = P2 & 0x1f | 0xc0; + 17 1 P2 &= 0x1f; + 18 1 + 19 1 P0 = seg_dula[dula]; + 20 1 if (point) + 21 1 P0 &= 0x7f; // 0111 1111С + 22 1 P2 = P2 & 0x1f | 0xe0; + 23 1 P2 &= 0x1f; + 24 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 26 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/ds1302.lst b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/ds1302.lst new file mode 100644 index 0000000..ac70600 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/ds1302.lst @@ -0,0 +1,117 @@ +C51 COMPILER V9.59.0.0 DS1302 03/19/2024 17:03:06 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DE + -BUG OBJECTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "reg52.h" + 8 #include "intrins.h" + 9 + 10 sbit SCK = P1 ^ 7; + 11 sbit SDA = P2 ^ 3; + 12 sbit RST = P1 ^ 3; + 13 // + 14 void Write_Ds1302(unsigned char temp) + 15 { + 16 1 unsigned char i; + 17 1 for (i = 0; i < 8; i++) + 18 1 { + 19 2 SCK = 0; + 20 2 SDA = temp & 0x01; + 21 2 temp >>= 1; + 22 2 SCK = 1; + 23 2 } + 24 1 } + 25 + 26 // + 27 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 28 { + 29 1 RST = 0; + 30 1 _nop_(); + 31 1 SCK = 0; + 32 1 _nop_(); + 33 1 RST = 1; + 34 1 _nop_(); + 35 1 Write_Ds1302(address); + 36 1 Write_Ds1302(dat); + 37 1 RST = 0; + 38 1 } + 39 + 40 // + 41 unsigned char Read_Ds1302_Byte(unsigned char address) + 42 { + 43 1 unsigned char i, temp = 0x00; + 44 1 RST = 0; + 45 1 _nop_(); + 46 1 SCK = 0; + 47 1 _nop_(); + 48 1 RST = 1; + 49 1 _nop_(); + 50 1 Write_Ds1302(address); + 51 1 for (i = 0; i < 8; i++) + 52 1 { + 53 2 SCK = 0; + C51 COMPILER V9.59.0.0 DS1302 03/19/2024 17:03:06 PAGE 2 + + 54 2 temp >>= 1; + 55 2 if (SDA) + 56 2 temp |= 0x80; + 57 2 SCK = 1; + 58 2 } + 59 1 RST = 0; + 60 1 _nop_(); + 61 1 SCK = 0; + 62 1 _nop_(); + 63 1 SCK = 1; + 64 1 _nop_(); + 65 1 SDA = 0; + 66 1 _nop_(); + 67 1 SDA = 1; + 68 1 _nop_(); + 69 1 return (temp); + 70 1 } + 71 + 72 void Set_Rtc(unsigned char *ucRtc) + 73 { + 74 1 unsigned char i; + 75 1 Write_Ds1302_Byte(0x8e, 0x00); + 76 1 for (i = 0; i < 3; i++) + 77 1 { + 78 2 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 79 2 } + 80 1 Write_Ds1302_Byte(0x8e, 0x80); + 81 1 } + 82 + 83 void Read_Rtc(unsigned char *ucRtc) + 84 { + 85 1 unsigned char i; + 86 1 for (i = 0; i < 3; i++) + 87 1 { + 88 2 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 89 2 } + 90 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/iic.lst b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/iic.lst new file mode 100644 index 0000000..cf6e3b0 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/iic.lst @@ -0,0 +1,172 @@ +C51 COMPILER V9.59.0.0 IIC 03/19/2024 17:03:06 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG + - OBJECTEXTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 03/19/2024 17:03:06 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 03/19/2024 17:03:06 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 开始获取数据 + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 + 136 1 I2CStart(); + 137 1 I2CSendByte(0x91); + 138 1 I2CWaitAck(); + 139 1 temp = I2CReceiveByte(); + 140 1 I2CSendAck(1); + 141 1 I2CStop(); + 142 1 return temp; + 143 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 231 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/init.lst b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/init.lst new file mode 100644 index 0000000..d52b2e5 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/init.lst @@ -0,0 +1,35 @@ +C51 COMPILER V9.59.0.0 INIT 03/19/2024 17:03:06 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBU + -G OBJECTEXTEND PRINT(.\Listings\init.lst) TABS(2) OBJECT(.\Objects\init.obj) + +line level source + + 1 #include "init.h" + 2 void System_Init() + 3 { + 4 1 P0 = 0xff; + 5 1 P2 = P2 & 0x1f | 0x80; + 6 1 P2 &= 0x1f; + 7 1 + 8 1 P0 = 0x00; + 9 1 P2 = P2 & 0x1f | 0xa0; + 10 1 P2 &= 0x1f; + 11 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/main.lst b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/main.lst new file mode 100644 index 0000000..6421fd1 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/main.lst @@ -0,0 +1,420 @@ +C51 COMPILER V9.59.0.0 MAIN 03/19/2024 17:03:05 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG OBJECTEX + -TEND PRINT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 + 3 /* */ + 4 /* ̷ */ + 5 uchar Key_Slow_Down; + 6 + 7 /* LED */ + 8 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 9 /* ܷ */ + 10 uint Seg_Slow_Down; + 11 uchar Seg_Pos; + 12 uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; + 13 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 14 + 15 /* ʱ */ + 16 uchar ucRtc[3] = {0x11, 0x59, 0x56}; + 17 uint time_1s; + 18 uint time_2s; + 19 uint time_3s; + 20 uchar time_100ms; + 21 /* */ + 22 uchar Seg_show_mode; // 0 ʱ 1 2 + 23 uchar re_show_mode; // 0 ¶ 1 ʪ 2 ʱ + 24 + 25 /* */ + 26 uchar max_temperature; // ¶ + 27 uint aver_temperature_10x; // ƽ¶ + 28 uint old_temperature_10x; // һε¶ + 29 uchar max_humidity; // ʪ + 30 uint aver_humidity_10x; // ƽʪ + 31 uint old_humidity_10x; // һεʪ + 32 uchar trigger_count; // + 33 uchar trigger_time[3]; // ʱ + 34 uchar para_temperature = 30; // ¶Ȳ + 35 uint freq; + 36 + 37 /* жϲ */ + 38 uchar old_light_value; // һεĹǿ + 39 bit trigger_flag; // ־ + 40 bit long_press_flag; // ־ + 41 bit wring_flag; // ¶ȳ + 42 bit Led_light_flag; // ˸ + 43 bit error_humidity_flag; // ʪǷЧЧΪ1 + 44 bit data_up; // ʪȾ + 45 + 46 /* */ + 47 /* */ + 48 void Clear_Data(void) + 49 { + 50 1 uchar i; + 51 1 max_temperature = 0; // ¶ + 52 1 aver_temperature_10x = 0; // ƽ¶ + 53 1 max_humidity = 0; // ʪ + 54 1 aver_humidity_10x = 0; // ƽʪ + C51 COMPILER V9.59.0.0 MAIN 03/19/2024 17:03:05 PAGE 2 + + 55 1 trigger_count = 0; // + 56 1 for (i = 0; i < 3; i++) + 57 1 trigger_time[i] = 0; // ʱ + 58 1 } + 59 /* ܸλ */ + 60 void Seg_Reset(void) + 61 { + 62 1 uchar i; + 63 1 for (i = 0; i < 8; i++) + 64 1 { + 65 2 Seg_Buf[i] = 10; + 66 2 Seg_Point[i] = 0; + 67 2 } + 68 1 } + 69 /* ʪȼ */ + 70 float rd_humidity(void) + 71 { + 72 1 float humidity_value; + 73 1 if (freq < 200 || freq > 2000) + 74 1 return 0; + 75 1 humidity_value = (freq - 200) * 2 / 45 + 10; + 76 1 return humidity_value; + 77 1 } + 78 + 79 /* ̴ */ + 80 void Key_Porc(void) + 81 { + 82 1 static uchar Key_Val, Key_Down, Key_Old, Key_Up; + 83 1 if (Key_Slow_Down) + 84 1 return; + 85 1 Key_Slow_Down = 1; + 86 1 + 87 1 Key_Val = Key_Read(); + 88 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 89 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 90 1 Key_Old = Key_Val; + 91 1 + 92 1 if (Key_Down == 4) + 93 1 { + 94 2 Seg_Reset(); + 95 2 Seg_show_mode = (++Seg_show_mode) % 3; + 96 2 re_show_mode = 0; + 97 2 } + 98 1 if (Seg_show_mode == 1 && Key_Down == 5) + 99 1 { + 100 2 Seg_Reset(); + 101 2 re_show_mode = (++re_show_mode) % 3; + 102 2 } + 103 1 if (Seg_show_mode == 2) + 104 1 { + 105 2 if (Key_Down == 8) + 106 2 para_temperature = (++para_temperature > 99) ? 99 : para_temperature; + 107 2 else if (Key_Down == 9) + 108 2 para_temperature = (--para_temperature < 0) ? 0 : para_temperature; + 109 2 } + 110 1 if (Seg_show_mode == 1 && re_show_mode == 2) + 111 1 { + 112 2 if (Key_Down == 9) + 113 2 { + 114 3 long_press_flag = 1; + 115 3 } + 116 2 if (Key_Up == 9) + C51 COMPILER V9.59.0.0 MAIN 03/19/2024 17:03:05 PAGE 3 + + 117 2 { + 118 3 if (time_2s >= 2000) + 119 3 Clear_Data(); + 120 3 long_press_flag = 0; + 121 3 } + 122 2 } + 123 1 } + 124 + 125 /* ܴ */ + 126 void Seg_Porc(void) + 127 { + 128 1 uint temp_temperature_10x, temp_humidity_10x; + 129 1 uchar temp_light; + 130 1 if (Seg_Slow_Down) + 131 1 return; + 132 1 Seg_Slow_Down = 1; + 133 1 temp_light = Ad_Read(0x01); + 134 1 // ظ + 135 1 if ((old_light_value > 50) && + 136 1 (temp_light < 50) && + 137 1 (trigger_flag == 0)) + 138 1 { + 139 2 trigger_flag = 1; + 140 2 if (++trigger_count == 100) + 141 2 trigger_count = 99; + 142 2 } + 143 1 + 144 1 // ҵ3s + 145 1 else if (trigger_flag == 1 && time_3s >= 3000) + 146 1 trigger_flag = 0; + 147 1 old_light_value = temp_light; + 148 1 if (trigger_flag) + 149 1 { + 150 2 + 151 2 Seg_Buf[1] = Seg_Buf[2] = 10; + 152 2 Seg_Point[6] = 0; + 153 2 /* ʪȽ */ + 154 2 Seg_Buf[0] = 16; // E + 155 2 temp_temperature_10x = rd_temperature() * 10; + 156 2 temp_humidity_10x = rd_humidity() * 10; + 157 2 Seg_Buf[3] = temp_temperature_10x / 100 % 10; + 158 2 Seg_Buf[4] = temp_temperature_10x / 10 % 10; + 159 2 Seg_Buf[5] = 11; //- + 160 2 // Ч + 161 2 if (temp_humidity_10x == 0) + 162 2 { + 163 3 trigger_count--; + 164 3 error_humidity_flag = 1; + 165 3 Seg_Buf[6] = 17; // A + 166 3 Seg_Buf[7] = 17; // A + 167 3 } + 168 2 // Ч + 169 2 else + 170 2 { + 171 3 Read_Rtc(trigger_time); + 172 3 error_humidity_flag = 0; // Ч + 173 3 wring_flag = (temp_temperature_10x > para_temperature * 10); + 174 3 if ((trigger_count >= 2) && + 175 3 (temp_humidity_10x > old_humidity_10x) && + 176 3 (temp_temperature_10x > old_temperature_10x)) + 177 3 data_up = 1; + 178 3 else + C51 COMPILER V9.59.0.0 MAIN 03/19/2024 17:03:05 PAGE 4 + + 179 3 data_up = 0; + 180 3 old_humidity_10x = temp_humidity_10x; + 181 3 old_temperature_10x = temp_temperature_10x; + 182 3 Seg_Buf[6] = temp_humidity_10x / 100 % 10; + 183 3 Seg_Buf[7] = temp_humidity_10x / 10 % 10; + 184 3 max_temperature = (max_temperature > temp_temperature_10x) ? max_temperature : temp_temperatur + -e_10x; + 185 3 max_humidity = (max_humidity > temp_humidity_10x) ? max_humidity : temp_humidity_10x; + 186 3 aver_temperature_10x = (aver_temperature_10x * (trigger_count - 1) + temp_temperature_10x) / ( + -trigger_count); + 187 3 aver_humidity_10x = (aver_humidity_10x * (trigger_count - 1) + temp_humidity_10x) / (trigger_c + -ount); + 188 3 } + 189 2 } + 190 1 else + 191 1 { + 192 2 switch (Seg_show_mode) + 193 2 { + 194 3 case 0: + 195 3 /* ʱ */ + 196 3 Read_Rtc(ucRtc); + 197 3 Seg_Buf[0] = ucRtc[0] / 16; + 198 3 Seg_Buf[1] = ucRtc[0] % 16; + 199 3 Seg_Buf[2] = 11; //- + 200 3 Seg_Buf[3] = ucRtc[1] / 16; + 201 3 Seg_Buf[4] = ucRtc[1] % 16; + 202 3 Seg_Buf[5] = 11; //- + 203 3 Seg_Buf[6] = ucRtc[2] / 16; + 204 3 Seg_Buf[7] = ucRtc[2] % 16; + 205 3 break; + 206 3 case 1: + 207 3 /* */ + 208 3 switch (re_show_mode) + 209 3 { + 210 4 case 0: + 211 4 /* ¶ */ + 212 4 Seg_Buf[0] = 12; // C + 213 4 if (trigger_count != 0) + 214 4 { + 215 5 Seg_Buf[2] = max_temperature / 10 % 10; + 216 5 Seg_Buf[3] = max_temperature % 10; + 217 5 Seg_Buf[4] = 11; //- + 218 5 Seg_Buf[5] = aver_temperature_10x / 100 % 10; + 219 5 Seg_Buf[6] = aver_temperature_10x / 10 % 10; + 220 5 Seg_Buf[7] = aver_temperature_10x % 10; + 221 5 Seg_Point[6] = 1; + 222 5 } + 223 4 break; + 224 4 case 1: + 225 4 /* ʪ */ + 226 4 Seg_Buf[0] = 13; // H + 227 4 if (trigger_count != 0) + 228 4 { + 229 5 Seg_Buf[2] = max_humidity / 10 % 10; + 230 5 Seg_Buf[3] = max_humidity % 10; + 231 5 Seg_Buf[4] = 11; //- + 232 5 Seg_Buf[5] = aver_humidity_10x / 100 % 10; + 233 5 Seg_Buf[6] = aver_humidity_10x / 10 % 10; + 234 5 Seg_Buf[7] = aver_humidity_10x % 10; + 235 5 Seg_Point[6] = 1; + 236 5 } + 237 4 break; + C51 COMPILER V9.59.0.0 MAIN 03/19/2024 17:03:05 PAGE 5 + + 238 4 case 2: + 239 4 /* ʱ */ + 240 4 Seg_Buf[0] = 14; // F + 241 4 Seg_Buf[1] = trigger_count / 10 % 10; + 242 4 Seg_Buf[2] = trigger_count % 10; + 243 4 if (trigger_count != 0) + 244 4 { + 245 5 Seg_Buf[3] = trigger_time[0] / 16; + 246 5 Seg_Buf[4] = trigger_time[0] % 16; + 247 5 Seg_Buf[5] = 11; //- + 248 5 Seg_Buf[6] = trigger_time[1] / 16; + 249 5 Seg_Buf[7] = trigger_time[1] % 16; + 250 5 } + 251 4 break; + 252 4 } + 253 3 break; + 254 3 case 2: + 255 3 /* */ + 256 3 Seg_Buf[0] = 15; // P + 257 3 Seg_Buf[6] = para_temperature / 10 % 10; + 258 3 Seg_Buf[7] = para_temperature % 10; + 259 3 break; + 260 3 } + 261 2 } + 262 1 } + 263 + 264 /* LED */ + 265 void Led_Porc(void) + 266 { + 267 1 /* */ + 268 1 ucLed[0] = (Seg_show_mode == 0); + 269 1 ucLed[1] = (Seg_show_mode == 1); + 270 1 ucLed[2] = (Seg_show_mode == 2); + 271 1 /* */ + 272 1 ucLed[3] = (wring_flag) ? Led_light_flag : 0; + 273 1 ucLed[4] = error_humidity_flag; + 274 1 ucLed[5] = data_up; + 275 1 } + 276 + 277 /* ʱ/ */ + 278 /* */ + 279 void Timer0_Init(void) // 1@12.000MHz + 280 { + 281 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 282 1 TMOD &= 0xF0; // öʱģʽ + 283 1 TMOD |= 0x05; // öʱģʽ + 284 1 TL0 = 0; // öʱʼֵ + 285 1 TH0 = 0; // öʱʼֵ + 286 1 TF0 = 0; // TF0־ + 287 1 TR0 = 1; // ʱ0ʼʱ + 288 1 } + 289 /* ʱ */ + 290 void Timer1_Init(void) // 1@12.000MHz + 291 { + 292 1 AUXR &= 0xBF; // ʱʱ12Tģʽ + 293 1 TMOD &= 0x0F; // öʱģʽ + 294 1 TL1 = 0x18; // öʱʼֵ + 295 1 TH1 = 0xFC; // öʱʼֵ + 296 1 TF1 = 0; // TF1־ + 297 1 TR1 = 1; // ʱ1ʼʱ + 298 1 ET1 = 1; // ʱ1ж + 299 1 EA = 1; // ж + C51 COMPILER V9.59.0.0 MAIN 03/19/2024 17:03:05 PAGE 6 + + 300 1 } + 301 /* ʱ */ + 302 void Timer1_ISR(void) interrupt 3 + 303 { + 304 1 if (++Key_Slow_Down == 10) + 305 1 Key_Slow_Down = 0; + 306 1 if (++Seg_Slow_Down == 200) + 307 1 Seg_Slow_Down = 0; + 308 1 if (++Seg_Pos == 8) + 309 1 Seg_Pos = 0; + 310 1 if (++time_1s == 1000) + 311 1 { + 312 2 time_1s = 0; + 313 2 freq = TH0 << 8 | TL0; + 314 2 TH0 = 0; + 315 2 TL0 = 0; + 316 2 } + 317 1 if (trigger_flag) + 318 1 { + 319 2 if (++time_3s >= 3000) + 320 2 { + 321 3 time_3s = 3001; + 322 3 } + 323 2 } + 324 1 else + 325 1 time_3s = 0; + 326 1 // ʼʱ + 327 1 if (long_press_flag) + 328 1 { + 329 2 if (++time_2s >= 2000) + 330 2 { + 331 3 time_2s = 2001; + 332 3 } + 333 2 } + 334 1 else + 335 1 time_2s = 0; + 336 1 // ڱ + 337 1 + 338 1 if (++time_100ms == 100) + 339 1 { + 340 2 time_100ms = 0; + 341 2 Led_light_flag ^= 1; + 342 2 } + 343 1 + 344 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 345 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 346 1 } + 347 void Delay750ms(void) //@12.000MHz + 348 { + 349 1 unsigned char data i, j, k; + 350 1 + 351 1 _nop_(); + 352 1 _nop_(); + 353 1 i = 35; + 354 1 j = 51; + 355 1 k = 182; + 356 1 do + 357 1 { + 358 2 do + 359 2 { + 360 3 while (--k) + 361 3 ; + C51 COMPILER V9.59.0.0 MAIN 03/19/2024 17:03:05 PAGE 7 + + 362 3 } while (--j); + 363 2 } while (--i); + 364 1 } + 365 + 366 void main() + 367 { + 368 1 + 369 1 System_Init(); + 370 1 Timer0_Init(); + 371 1 Timer1_Init(); + 372 1 Set_Rtc(ucRtc); + 373 1 Delay750ms(); + 374 1 rd_temperature(); + 375 1 while (1) + 376 1 { + 377 2 Key_Porc(); + 378 2 Seg_Porc(); + 379 2 Led_Porc(); + 380 2 } + 381 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 1496 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 62 4 + IDATA SIZE = ---- ---- + BIT SIZE = 6 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/onewire.lst b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/onewire.lst new file mode 100644 index 0000000..10ea8f7 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/onewire.lst @@ -0,0 +1,113 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 03/19/2024 17:03:06 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) D + -EBUG OBJECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "reg52.h" + 8 sbit DQ = P1 ^ 4; + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 03/19/2024 17:03:06 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 float rd_temperature() + 72 { + 73 1 unsigned char low, high; + 74 1 // 温度转换 + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); + 77 1 Write_DS18B20(0x44); + 78 1 // 温度读取 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); + 81 1 Write_DS18B20(0xbe); + 82 1 + 83 1 low = Read_DS18B20(); + 84 1 high = Read_DS18B20(); + 85 1 return (high << 8 | low) / 16.0; + 86 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/test14.m51 b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/test14.m51 new file mode 100644 index 0000000..1f88102 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Listings/test14.m51 @@ -0,0 +1,1283 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Key.obj, .\Objects\ds1302.obj, .\Objects\iic.obj, .\Objects\in +>> it.obj, .\Objects\Led.obj, .\Objects\onewire.obj, .\Objects\Seg.obj TO .\Objects\test14 PRINT (.\Listings\test14.m51) +>> RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Key.obj (KEY) + .\Objects\ds1302.obj (DS1302) + .\Objects\iic.obj (IIC) + .\Objects\init.obj (INIT) + .\Objects\Led.obj (LED) + .\Objects\onewire.obj (ONEWIRE) + .\Objects\Seg.obj (SEG) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?IMUL) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\test14 (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 0007H UNIT _DATA_GROUP_ + DATA 000FH 0002H UNIT ?DT?LED + 0011H 000FH *** GAP *** + BIT 0020H.0 0000H.6 UNIT ?BI?MAIN + BIT 0020H.6 0000H.2 UNIT _BIT_GROUP_ + DATA 0021H 003EH UNIT ?DT?MAIN + DATA 005FH 001AH UNIT ?DT?SEG + IDATA 0079H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 001BH 0003H ABSOLUTE + CODE 001EH 0329H UNIT ?C?LIB_CODE + CODE 0347H 0302H UNIT ?PR?SEG_PORC?MAIN + CODE 0649H 00FAH UNIT ?PR?TIMER1_ISR?MAIN + CODE 0743H 00BCH UNIT ?PR?KEY_PORC?MAIN + CODE 07FFH 008CH UNIT ?C_C51STARTUP + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 2 + + + CODE 088BH 007AH UNIT ?PR?KEY_READ?KEY + CODE 0905H 004BH UNIT ?C_INITSEG + CODE 0950H 0046H UNIT ?PR?LED_PORC?MAIN + CODE 0996H 0040H UNIT ?PR?RD_HUMIDITY?MAIN + CODE 09D6H 003EH UNIT ?PR?_SET_RTC?DS1302 + CODE 0A14H 003DH UNIT ?PR?_READ_DS1302_BYTE?DS1302 + CODE 0A51H 003AH UNIT ?PR?_LED_DISP?LED + CODE 0A8BH 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 0AC1H 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 0AF6H 0034H UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 0B2AH 0031H UNIT ?PR?_READ_RTC?DS1302 + CODE 0B5BH 002AH UNIT ?PR?_AD_READ?IIC + CODE 0B85H 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 0BACH 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 0BD3H 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 0BF9H 0024H UNIT ?PR?CLEAR_DATA?MAIN + CODE 0C1DH 0023H UNIT ?PR?MAIN?MAIN + CODE 0C40H 0023H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 0C63H 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 0C81H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0C9EH 001CH UNIT ?PR?SEG_RESET?MAIN + CODE 0CBAH 001CH UNIT ?PR?_WRITE_DS1302?DS1302 + CODE 0CD6H 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 0CF0H 0015H UNIT ?PR?TIMER1_INIT?MAIN + CODE 0D05H 0015H UNIT ?PR?I2CWAITACK?IIC + CODE 0D1AH 0014H UNIT ?PR?_WRITE_DS1302_BYTE?DS1302 + CODE 0D2EH 0013H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0D41H 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 0D50H 000FH UNIT ?PR?I2CSTART?IIC + CODE 0D5FH 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\test14 (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------------- +?PR?TIMER1_ISR?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +?PR?_LED_DISP?LED 0020H.6 0000H.1 ----- ----- + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?TIMER1_INIT?MAIN + +--> ?PR?_SET_RTC?DS1302 + +--> ?PR?DELAY750MS?MAIN + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 3 + + + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?KEY_PORC?MAIN + +--> ?PR?SEG_PORC?MAIN + +--> ?PR?LED_PORC?MAIN + +?PR?_SET_RTC?DS1302 ----- ----- 0008H 0003H + +--> ?PR?_WRITE_DS1302_BYTE?DS1302 + +?PR?_WRITE_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.7 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?KEY_PORC?MAIN ----- ----- ----- ----- + +--> ?PR?KEY_READ?KEY + +--> ?PR?SEG_RESET?MAIN + +--> ?PR?CLEAR_DATA?MAIN + +?PR?SEG_PORC?MAIN ----- ----- 0008H 0004H + +--> ?PR?_AD_READ?IIC + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?RD_HUMIDITY?MAIN + +--> ?PR?_READ_RTC?DS1302 + +?PR?_AD_READ?IIC ----- ----- ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CWAITACK?IIC ----- ----- ----- ----- + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 4 + + +?PR?_I2CSENDACK?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_READ_RTC?DS1302 ----- ----- 000CH 0003H + +--> ?PR?_READ_DS1302_BYTE?DS1302 + +?PR?_READ_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + + + +SYMBOL TABLE OF MODULE: .\Objects\test14 (MAIN) + + VALUE TYPE NAME + ---------------------------------- + + ------- MODULE MAIN + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:0025H PUBLIC aver_temperature_10x + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:0027H PUBLIC re_show_mode + D:0028H PUBLIC ucRtc + D:00C0H PUBLIC P4 + C:0649H PUBLIC Timer1_ISR + D:002BH PUBLIC time_100ms + D:00C8H PUBLIC P5 + D:002CH PUBLIC trigger_count + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + C:0C9EH PUBLIC Seg_Reset + D:00F8H PUBLIC P7 + D:002DH PUBLIC trigger_time + C:0950H PUBLIC Led_Porc + D:0030H PUBLIC Seg_Point + D:00A8H PUBLIC IE + B:0020H.0 PUBLIC Led_light_flag + D:0038H PUBLIC old_temperature_10x + C:0347H PUBLIC Seg_Porc + D:00B8H PUBLIC IP + D:003AH PUBLIC max_humidity + D:003BH PUBLIC Seg_Buf + C:0743H PUBLIC Key_Porc + D:0043H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:0C1DH PUBLIC main + B:0020H.1 PUBLIC wring_flag + C:0996H PUBLIC rd_humidity + C:0D2EH PUBLIC Timer0_Init + C:0CF0H PUBLIC Timer1_Init + D:0045H PUBLIC Key_Slow_Down + D:0046H PUBLIC freq + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 5 + + + D:0048H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:0049H PUBLIC time_1s + D:004BH PUBLIC time_2s + D:004DH PUBLIC time_3s + D:004FH PUBLIC old_light_value + D:0050H PUBLIC para_temperature + D:0051H PUBLIC aver_humidity_10x + B:0020H.2 PUBLIC long_press_flag + D:008EH PUBLIC AUXR + C:0BF9H PUBLIC Clear_Data + B:0088H.5 PUBLIC TF0 + B:00A8H.3 PUBLIC ET1 + B:0088H.7 PUBLIC TF1 + D:0053H PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008DH PUBLIC TH1 + D:0054H PUBLIC old_humidity_10x + D:008AH PUBLIC TL0 + D:008BH PUBLIC TL1 + B:0088H.4 PUBLIC TR0 + B:0088H.6 PUBLIC TR1 + D:0056H PUBLIC max_temperature + B:0020H.3 PUBLIC data_up + D:0057H PUBLIC ucLed + C:0D41H PUBLIC Delay750ms + B:0020H.4 PUBLIC trigger_flag + D:00D0H PUBLIC PSW + B:0020H.5 PUBLIC error_humidity_flag + ------- PROC CLEAR_DATA + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0BF9H LINE# 48 + C:0BF9H LINE# 49 + C:0BF9H LINE# 51 + C:0BFCH LINE# 52 + C:0C00H LINE# 53 + C:0C02H LINE# 54 + C:0C06H LINE# 55 + C:0C08H LINE# 56 + C:0C13H LINE# 57 + C:0C1CH LINE# 58 + ------- ENDPROC CLEAR_DATA + ------- PROC SEG_RESET + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0C9EH LINE# 60 + C:0C9EH LINE# 61 + C:0C9EH LINE# 63 + C:0CAAH LINE# 64 + C:0CAAH LINE# 65 + C:0CB0H LINE# 66 + C:0CB6H LINE# 67 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 6 + + + C:0CB9H LINE# 68 + ------- ENDPROC SEG_RESET + ------- PROC RD_HUMIDITY + ------- DO + D:0004H SYMBOL humidity_value + ------- ENDDO + C:0996H LINE# 70 + C:0996H LINE# 71 + C:0996H LINE# 73 + C:09ACH LINE# 74 + C:09B2H LINE# 75 + C:09D5H LINE# 76 + C:09D5H LINE# 77 + ------- ENDPROC RD_HUMIDITY + ------- PROC KEY_PORC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Old + D:0024H SYMBOL Key_Up + ------- ENDDO + C:0743H LINE# 80 + C:0743H LINE# 81 + C:0743H LINE# 83 + C:074AH LINE# 85 + C:074DH LINE# 87 + C:0752H LINE# 88 + C:075BH LINE# 89 + C:0761H LINE# 90 + C:0764H LINE# 92 + C:076AH LINE# 93 + C:076AH LINE# 94 + C:076DH LINE# 95 + C:0778H LINE# 96 + C:077BH LINE# 97 + C:077BH LINE# 98 + C:0787H LINE# 99 + C:0787H LINE# 100 + C:078AH LINE# 101 + C:0795H LINE# 102 + C:0795H LINE# 103 + C:079EH LINE# 104 + C:079EH LINE# 105 + C:07A6H LINE# 106 + C:07BDH LINE# 107 + C:07C3H LINE# 108 + C:07D4H LINE# 109 + C:07D4H LINE# 110 + C:07E0H LINE# 111 + C:07E0H LINE# 112 + C:07E6H LINE# 113 + C:07E6H LINE# 114 + C:07E8H LINE# 115 + C:07E8H LINE# 116 + C:07EEH LINE# 117 + C:07EEH LINE# 118 + C:07F9H LINE# 119 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 7 + + + C:07FCH LINE# 120 + C:07FEH LINE# 121 + C:07FEH LINE# 122 + C:07FEH LINE# 123 + ------- ENDPROC KEY_PORC + ------- PROC SEG_PORC + ------- DO + D:0008H SYMBOL temp_temperature_10x + D:000AH SYMBOL temp_humidity_10x + D:0007H SYMBOL temp_light + ------- ENDDO + C:0347H LINE# 126 + C:0347H LINE# 127 + C:0347H LINE# 130 + C:0350H LINE# 132 + C:0355H LINE# 133 + C:035AH LINE# 135 + C:0371H LINE# 138 + C:0371H LINE# 139 + C:0373H LINE# 140 + C:037BH LINE# 141 + C:037EH LINE# 142 + C:0380H LINE# 145 + C:038EH LINE# 146 + C:0390H LINE# 147 + C:0392H LINE# 148 + C:0398H LINE# 149 + C:0398H LINE# 151 + C:039EH LINE# 152 + C:03A1H LINE# 154 + C:03A4H LINE# 155 + C:03B8H LINE# 156 + C:03CCH LINE# 157 + C:03E0H LINE# 158 + C:03F4H LINE# 159 + C:03F7H LINE# 161 + C:03FDH LINE# 162 + C:03FDH LINE# 163 + C:03FFH LINE# 164 + C:0401H LINE# 165 + C:0404H LINE# 166 + C:0407H LINE# 167 + C:0408H LINE# 170 + C:0408H LINE# 171 + C:0411H LINE# 172 + C:0413H LINE# 173 + C:042AH LINE# 174 + C:044BH LINE# 177 + C:044FH LINE# 179 + C:0451H LINE# 180 + C:0457H LINE# 181 + C:045DH LINE# 182 + C:0471H LINE# 183 + C:0485H LINE# 184 + C:0497H LINE# 185 + C:04A9H LINE# 186 + C:04CFH LINE# 187 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 8 + + + C:04EDH LINE# 188 + C:04EDH LINE# 189 + C:04EEH LINE# 191 + C:04EEH LINE# 192 + C:0500H LINE# 193 + C:0500H LINE# 194 + C:0500H LINE# 196 + C:0509H LINE# 197 + C:0510H LINE# 198 + C:0516H LINE# 199 + C:0519H LINE# 200 + C:0520H LINE# 201 + C:0526H LINE# 202 + C:0529H LINE# 203 + C:0530H LINE# 204 + C:0532H LINE# 205 + C:0535H LINE# 206 + C:0535H LINE# 208 + C:0547H LINE# 209 + C:0547H LINE# 210 + C:0547H LINE# 212 + C:054AH LINE# 213 + C:0551H LINE# 214 + C:0551H LINE# 215 + C:055EH LINE# 216 + C:0567H LINE# 217 + C:056AH LINE# 218 + C:057EH LINE# 219 + C:0592H LINE# 220 + C:0596H LINE# 221 + C:0596H LINE# 222 + C:0596H LINE# 223 + C:0598H LINE# 224 + C:0598H LINE# 226 + C:059BH LINE# 227 + C:05A2H LINE# 228 + C:05A2H LINE# 229 + C:05AFH LINE# 230 + C:05B8H LINE# 231 + C:05BBH LINE# 232 + C:05CFH LINE# 233 + C:05E3H LINE# 234 + C:05F0H LINE# 235 + C:05F3H LINE# 236 + C:05F3H LINE# 237 + C:05F4H LINE# 238 + C:05F4H LINE# 240 + C:05F7H LINE# 241 + C:0604H LINE# 242 + C:060DH LINE# 243 + C:0611H LINE# 244 + C:0611H LINE# 245 + C:0618H LINE# 246 + C:061EH LINE# 247 + C:0621H LINE# 248 + C:0628H LINE# 249 + C:062EH LINE# 250 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 9 + + + C:062EH LINE# 251 + C:062FH LINE# 252 + C:062FH LINE# 253 + C:062FH LINE# 254 + C:062FH LINE# 256 + C:0632H LINE# 257 + C:063FH LINE# 258 + C:0648H LINE# 259 + C:0648H LINE# 260 + C:0648H LINE# 261 + C:0648H LINE# 262 + ------- ENDPROC SEG_PORC + ------- PROC LED_PORC + C:0950H LINE# 265 + C:0950H LINE# 266 + C:0950H LINE# 268 + C:095FH LINE# 269 + C:096DH LINE# 270 + C:097BH LINE# 272 + C:0989H LINE# 273 + C:098FH LINE# 274 + C:0995H LINE# 275 + ------- ENDPROC LED_PORC + ------- PROC TIMER0_INIT + C:0D2EH LINE# 279 + C:0D2EH LINE# 280 + C:0D2EH LINE# 281 + C:0D31H LINE# 282 + C:0D34H LINE# 283 + C:0D37H LINE# 284 + C:0D3AH LINE# 285 + C:0D3CH LINE# 286 + C:0D3EH LINE# 287 + C:0D40H LINE# 288 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER1_INIT + C:0CF0H LINE# 290 + C:0CF0H LINE# 291 + C:0CF0H LINE# 292 + C:0CF3H LINE# 293 + C:0CF6H LINE# 294 + C:0CF9H LINE# 295 + C:0CFCH LINE# 296 + C:0CFEH LINE# 297 + C:0D00H LINE# 298 + C:0D02H LINE# 299 + C:0D04H LINE# 300 + ------- ENDPROC TIMER1_INIT + ------- PROC TIMER1_ISR + C:0649H LINE# 302 + C:0666H LINE# 304 + C:066EH LINE# 305 + C:0670H LINE# 306 + C:067EH LINE# 307 + C:0682H LINE# 308 + C:068AH LINE# 309 + C:068CH LINE# 310 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 10 + + + C:069DH LINE# 311 + C:069DH LINE# 312 + C:06A3H LINE# 313 + C:06ADH LINE# 314 + C:06B0H LINE# 315 + C:06B3H LINE# 316 + C:06B3H LINE# 317 + C:06B6H LINE# 318 + C:06B6H LINE# 319 + C:06C7H LINE# 320 + C:06C7H LINE# 321 + C:06CDH LINE# 322 + C:06CDH LINE# 323 + C:06CFH LINE# 325 + C:06D5H LINE# 327 + C:06D8H LINE# 328 + C:06D8H LINE# 329 + C:06E9H LINE# 330 + C:06E9H LINE# 331 + C:06EFH LINE# 332 + C:06EFH LINE# 333 + C:06F1H LINE# 335 + C:06F7H LINE# 338 + C:06FFH LINE# 339 + C:06FFH LINE# 340 + C:0701H LINE# 341 + C:0706H LINE# 342 + C:0706H LINE# 344 + C:0719H LINE# 345 + C:0728H LINE# 346 + ------- ENDPROC TIMER1_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0D41H LINE# 347 + C:0D41H LINE# 348 + C:0D41H LINE# 351 + C:0D42H LINE# 352 + C:0D43H LINE# 353 + C:0D45H LINE# 354 + C:0D47H LINE# 355 + C:0D49H LINE# 357 + C:0D49H LINE# 359 + C:0D49H LINE# 360 + C:0D4BH LINE# 362 + C:0D4DH LINE# 363 + C:0D4FH LINE# 364 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:0C1DH LINE# 366 + C:0C1DH LINE# 367 + C:0C1DH LINE# 369 + C:0C20H LINE# 370 + C:0C23H LINE# 371 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 11 + + + C:0C26H LINE# 372 + C:0C2FH LINE# 373 + C:0C32H LINE# 374 + C:0C35H LINE# 375 + C:0C35H LINE# 376 + C:0C35H LINE# 377 + C:0C38H LINE# 378 + C:0C3BH LINE# 379 + C:0C3EH LINE# 380 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:088BH PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:088BH LINE# 3 + C:088BH LINE# 4 + C:088BH LINE# 6 + C:088DH LINE# 7 + C:088FH LINE# 8 + C:0891H LINE# 9 + C:0893H LINE# 10 + C:0895H LINE# 11 + C:0897H LINE# 12 + C:089AH LINE# 13 + C:089CH LINE# 14 + C:089FH LINE# 15 + C:08A1H LINE# 16 + C:08A4H LINE# 17 + C:08A6H LINE# 18 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 12 + + + C:08A9H LINE# 19 + C:08ABH LINE# 20 + C:08ADH LINE# 21 + C:08AFH LINE# 22 + C:08B1H LINE# 23 + C:08B3H LINE# 24 + C:08B6H LINE# 25 + C:08B8H LINE# 26 + C:08BBH LINE# 27 + C:08BDH LINE# 28 + C:08C0H LINE# 29 + C:08C2H LINE# 30 + C:08C5H LINE# 31 + C:08C7H LINE# 32 + C:08C9H LINE# 33 + C:08CBH LINE# 34 + C:08CDH LINE# 35 + C:08CFH LINE# 36 + C:08D2H LINE# 37 + C:08D4H LINE# 38 + C:08D7H LINE# 39 + C:08D9H LINE# 40 + C:08DCH LINE# 41 + C:08DEH LINE# 42 + C:08E1H LINE# 43 + C:08E3H LINE# 44 + C:08E5H LINE# 45 + C:08E7H LINE# 46 + C:08E9H LINE# 47 + C:08EBH LINE# 48 + C:08EEH LINE# 49 + C:08F0H LINE# 50 + C:08F3H LINE# 51 + C:08F5H LINE# 52 + C:08F8H LINE# 53 + C:08FAH LINE# 54 + C:08FDH LINE# 55 + C:08FFH LINE# 56 + C:0901H LINE# 57 + C:0904H LINE# 58 + C:0904H LINE# 59 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE DS1302 + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0B2AH PUBLIC _Read_Rtc + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:09D6H PUBLIC _Set_Rtc + C:0A14H PUBLIC _Read_Ds1302_Byte + B:00A0H.3 PUBLIC SDA + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 13 + + + B:0090H.7 PUBLIC SCK + C:0D1AH PUBLIC _Write_Ds1302_Byte + D:00C8H PUBLIC T2CON + C:0CBAH PUBLIC _Write_Ds1302 + B:0090H.3 PUBLIC RST + D:00D0H PUBLIC PSW + ------- PROC _WRITE_DS1302 + D:0007H SYMBOL temp + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0CBAH LINE# 14 + C:0CBAH LINE# 15 + C:0CBAH LINE# 17 + C:0CC6H LINE# 18 + C:0CC6H LINE# 19 + C:0CC8H LINE# 20 + C:0CCCH LINE# 21 + C:0CD0H LINE# 22 + C:0CD2H LINE# 23 + C:0CD5H LINE# 24 + ------- ENDPROC _WRITE_DS1302 + ------- PROC _WRITE_DS1302_BYTE + D:0007H SYMBOL address + D:0005H SYMBOL dat + C:0D1AH LINE# 27 + C:0D1AH LINE# 28 + C:0D1AH LINE# 29 + C:0D1CH LINE# 30 + C:0D1DH LINE# 31 + C:0D1FH LINE# 32 + C:0D20H LINE# 33 + C:0D22H LINE# 34 + C:0D23H LINE# 35 + C:0D26H LINE# 36 + C:0D2BH LINE# 37 + C:0D2DH LINE# 38 + ------- ENDPROC _WRITE_DS1302_BYTE + ------- PROC _READ_DS1302_BYTE + D:0007H SYMBOL address + ------- DO + D:0007H SYMBOL i + D:0005H SYMBOL temp + ------- ENDDO + C:0A14H LINE# 41 + C:0A14H LINE# 42 + C:0A14H LINE# 43 + C:0A16H LINE# 44 + C:0A18H LINE# 45 + C:0A19H LINE# 46 + C:0A1BH LINE# 47 + C:0A1CH LINE# 48 + C:0A1EH LINE# 49 + C:0A1FH LINE# 50 + C:0A22H LINE# 51 + C:0A2EH LINE# 52 + C:0A2EH LINE# 53 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 14 + + + C:0A30H LINE# 54 + C:0A34H LINE# 55 + C:0A37H LINE# 56 + C:0A3AH LINE# 57 + C:0A3CH LINE# 58 + C:0A3FH LINE# 59 + C:0A41H LINE# 60 + C:0A42H LINE# 61 + C:0A44H LINE# 62 + C:0A45H LINE# 63 + C:0A47H LINE# 64 + C:0A48H LINE# 65 + C:0A4AH LINE# 66 + C:0A4BH LINE# 67 + C:0A4DH LINE# 68 + C:0A4EH LINE# 69 + C:0A50H LINE# 70 + ------- ENDPROC _READ_DS1302_BYTE + ------- PROC _SET_RTC + D:0008H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:09D6H LINE# 72 + C:09DCH LINE# 73 + C:09DCH LINE# 75 + C:09E3H LINE# 76 + C:09EFH LINE# 77 + C:09EFH LINE# 78 + C:0A0AH LINE# 79 + C:0A0DH LINE# 80 + ------- ENDPROC _SET_RTC + ------- PROC _READ_RTC + D:000CH SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0B2AH LINE# 83 + C:0B30H LINE# 84 + C:0B30H LINE# 86 + C:0B3CH LINE# 87 + C:0B3CH LINE# 88 + C:0B57H LINE# 89 + C:0B5AH LINE# 90 + ------- ENDPROC _READ_RTC + ------- ENDMOD DS1302 + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0B5BH PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 15 + + + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0CDAH SYMBOL _I2C_Delay + D:00B8H PUBLIC IP + C:0BD3H PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + B:00A0H.0 PUBLIC scl + C:0D50H PUBLIC I2CStart + C:0003H PUBLIC _I2CSendAck + C:0AC1H PUBLIC _I2CSendByte + C:0D08H PUBLIC I2CWaitAck + C:0D5FH PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:0CD6H SYMBOL L?0022 + ------- PROC L?0021 + ------- ENDPROC L?0021 + C:0CD6H SYMBOL L?0022 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:0CDAH LINE# 12 + C:0CDAH LINE# 13 + C:0CDAH LINE# 15 + C:0CDAH LINE# 16 + C:0CDBH LINE# 17 + C:0CDCH LINE# 18 + C:0CDDH LINE# 19 + C:0CDEH LINE# 20 + C:0CDFH LINE# 21 + C:0CE0H LINE# 22 + C:0CE1H LINE# 23 + C:0CE2H LINE# 24 + C:0CE3H LINE# 25 + C:0CE4H LINE# 26 + C:0CE5H LINE# 27 + C:0CE6H LINE# 28 + C:0CE7H LINE# 29 + C:0CE8H LINE# 30 + C:0CE9H LINE# 31 + C:0CEFH LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:0D50H LINE# 35 + C:0D50H LINE# 36 + C:0D50H LINE# 37 + C:0D52H LINE# 38 + C:0D52H LINE# 39 + C:0D55H LINE# 40 + C:0D57H LINE# 41 + C:0D5CH LINE# 42 + C:0D5EH LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:0D5FH LINE# 46 + C:0D5FH LINE# 47 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 16 + + + C:0D5FH LINE# 48 + C:0D61H LINE# 49 + C:0D61H LINE# 50 + C:0D64H LINE# 51 + C:0D66H LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0AC1H LINE# 56 + C:0AC3H LINE# 57 + C:0AC3H LINE# 60 + C:0ACFH LINE# 61 + C:0ACFH LINE# 62 + C:0AD1H LINE# 63 + C:0AD6H LINE# 64 + C:0ADAH LINE# 65 + C:0ADAH LINE# 66 + C:0ADCH LINE# 67 + C:0ADEH LINE# 69 + C:0ADEH LINE# 70 + C:0AE0H LINE# 71 + C:0AE0H LINE# 72 + C:0AE5H LINE# 73 + C:0AE7H LINE# 74 + C:0AEBH LINE# 75 + C:0AF0H LINE# 76 + C:0AF3H LINE# 78 + C:0AF5H LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:0BD3H LINE# 82 + C:0BD3H LINE# 83 + C:0BD3H LINE# 86 + C:0BDFH LINE# 87 + C:0BDFH LINE# 88 + C:0BDFH LINE# 89 + C:0BE2H LINE# 90 + C:0BE6H LINE# 91 + C:0BE9H LINE# 92 + C:0BECH LINE# 93 + C:0BEEH LINE# 94 + C:0BF3H LINE# 95 + C:0BF6H LINE# 96 + C:0BF8H LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + ------- PROC L?0023 + ------- ENDPROC L?0023 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 17 + + + ------- ENDDO + C:0D08H LINE# 100 + C:0D08H LINE# 101 + C:0D08H LINE# 104 + C:0D08H LINE# 105 + C:0D0BH LINE# 106 + C:0D10H LINE# 107 + C:0D12H LINE# 108 + C:0D17H LINE# 110 + C:0D19H LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:0003H LINE# 114 + C:0003H LINE# 115 + C:0003H LINE# 116 + C:0005H LINE# 117 + C:000AH LINE# 118 + C:000FH LINE# 119 + C:000FH LINE# 120 + C:0012H LINE# 121 + C:0014H LINE# 122 + C:0016H LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:0B5BH LINE# 126 + C:0B5DH LINE# 127 + C:0B5DH LINE# 130 + C:0B60H LINE# 131 + C:0B62H LINE# 132 + C:0B65H LINE# 133 + C:0B67H LINE# 134 + C:0B6AH LINE# 136 + C:0B6DH LINE# 137 + C:0B72H LINE# 138 + C:0B75H LINE# 139 + C:0B7AH LINE# 140 + C:0B7FH LINE# 141 + C:0B82H LINE# 142 + C:0B84H LINE# 143 + ------- ENDPROC _AD_READ + ------- ENDMOD IIC + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0C81H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 18 + + + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0C81H LINE# 2 + C:0C81H LINE# 3 + C:0C81H LINE# 4 + C:0C84H LINE# 5 + C:0C8CH LINE# 6 + C:0C8FH LINE# 8 + C:0C92H LINE# 9 + C:0C9AH LINE# 10 + C:0C9DH LINE# 11 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0A51H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + B:0020H.6 SYMBOL enable + ------- DO + D:000FH SYMBOL temp + D:0010H SYMBOL temp_old + ------- ENDDO + C:0A51H LINE# 3 + C:0A51H LINE# 4 + C:0A51H LINE# 7 + C:0A54H LINE# 8 + C:0A63H LINE# 10 + C:0A71H LINE# 12 + C:0A77H LINE# 13 + C:0A77H LINE# 14 + C:0A7CH LINE# 15 + C:0A84H LINE# 16 + C:0A87H LINE# 17 + C:0A8AH LINE# 18 + C:0A8AH LINE# 19 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 19 + + + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:0C40H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:0C67H PUBLIC _Delay_OneWire + C:0B85H PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:0BACH PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:0AF6H PUBLIC rd_temperature + D:00D0H PUBLIC PSW + C:0C63H SYMBOL L?0020 + ------- PROC L?0019 + ------- ENDPROC L?0019 + C:0C63H SYMBOL L?0020 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:0C67H LINE# 10 + C:0C67H LINE# 11 + C:0C67H LINE# 13 + C:0C71H LINE# 14 + C:0C71H LINE# 15 + C:0C80H LINE# 17 + C:0C80H LINE# 18 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:0B85H LINE# 21 + C:0B87H LINE# 22 + C:0B87H LINE# 24 + C:0B93H LINE# 25 + C:0B93H LINE# 26 + C:0B95H LINE# 27 + C:0B99H LINE# 28 + C:0B9CH LINE# 29 + C:0B9EH LINE# 30 + C:0BA2H LINE# 31 + C:0BA5H LINE# 32 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 20 + + + ------- ENDDO + C:0C40H LINE# 36 + C:0C40H LINE# 37 + C:0C40H LINE# 41 + C:0C4CH LINE# 42 + C:0C4CH LINE# 43 + C:0C4EH LINE# 44 + C:0C52H LINE# 45 + C:0C54H LINE# 46 + C:0C57H LINE# 47 + C:0C57H LINE# 48 + C:0C5AH LINE# 49 + C:0C5AH LINE# 50 + C:0C5DH LINE# 51 + C:0C60H LINE# 52 + C:0C62H LINE# 53 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.7 SYMBOL initflag + ------- ENDDO + C:0BACH LINE# 56 + C:0BACH LINE# 57 + C:0BACH LINE# 58 + C:0BAEH LINE# 60 + C:0BB0H LINE# 61 + C:0BB7H LINE# 62 + C:0BB9H LINE# 63 + C:0BC0H LINE# 64 + C:0BC2H LINE# 65 + C:0BC9H LINE# 66 + C:0BCDH LINE# 67 + C:0BD0H LINE# 69 + C:0BD2H LINE# 70 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:0AF6H LINE# 71 + C:0AF6H LINE# 72 + C:0AF6H LINE# 75 + C:0AF9H LINE# 76 + C:0AFEH LINE# 77 + C:0B03H LINE# 79 + C:0B06H LINE# 80 + C:0B0BH LINE# 81 + C:0B10H LINE# 83 + C:0B15H LINE# 84 + C:0B18H LINE# 85 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 21 + + + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0A8BH PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:005FH PUBLIC seg_dula + D:0071H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:0A8BH LINE# 9 + C:0A8BH LINE# 10 + C:0A8BH LINE# 12 + C:0A8EH LINE# 13 + C:0A96H LINE# 15 + C:0A9DH LINE# 16 + C:0AA5H LINE# 17 + C:0AA8H LINE# 19 + C:0AAFH LINE# 20 + C:0AB2H LINE# 21 + C:0AB5H LINE# 22 + C:0ABDH LINE# 23 + C:0AC0H LINE# 24 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE ?C?FPMUL + C:001EH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FPDIV + C:0127H PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FCAST + C:01CEH PUBLIC ?C?FCASTC + C:01C9H PUBLIC ?C?FCASTI + C:01C4H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0202H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?CLDOPTR + C:0283H PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/19/2024 17:03:06 PAGE 22 + + + + ------- MODULE ?C?CSTOPTR + C:02B0H PUBLIC ?C?CSTOPTR + ------- ENDMOD ?C?CSTOPTR + + ------- MODULE ?C?IMUL + C:02D2H PUBLIC ?C?IMUL + ------- ENDMOD ?C?IMUL + + ------- MODULE ?C?UIDIV + C:02E4H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:0339H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +Program Size: data=107.0 xdata=0 code=3435 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/Key.obj b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/Key.obj new file mode 100644 index 0000000..0a6810d Binary files /dev/null and b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/Key.obj differ diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/Led.obj b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/Led.obj new file mode 100644 index 0000000..64d091c Binary files /dev/null and b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/Led.obj differ diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/Seg.obj b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/Seg.obj new file mode 100644 index 0000000..c7f0639 Binary files /dev/null and b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/Seg.obj differ diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/ds1302.obj b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/ds1302.obj new file mode 100644 index 0000000..2df59ea Binary files /dev/null and b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/ds1302.obj differ diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/iic.obj b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/iic.obj new file mode 100644 index 0000000..2bdf3e1 Binary files /dev/null and b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/iic.obj differ diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/init.obj b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/init.obj new file mode 100644 index 0000000..780fde2 Binary files /dev/null and b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/init.obj differ diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/main.obj b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/main.obj new file mode 100644 index 0000000..ef6235e Binary files /dev/null and b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/main.obj differ diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/onewire.obj b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/onewire.obj new file mode 100644 index 0000000..01c1686 Binary files /dev/null and b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/onewire.obj differ diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14 b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14 new file mode 100644 index 0000000..9acc352 Binary files /dev/null and b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14 differ diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14.build_log.htm b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14.build_log.htm new file mode 100644 index 0000000..482f938 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14.build_log.htm @@ -0,0 +1,40 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +

Project:

+C:\Users\haze\Desktop\blue-bridge-cup-learning\Ŀ\\14 ʮĽʡ\ʮĽʡ\user\test14.uvproj +Project File Date: 03/12/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Key.c... +compiling ds1302.c... +compiling iic.c... +compiling init.c... +compiling Led.c... +compiling onewire.c... +compiling Seg.c... +linking... +Program Size: data=107.0 xdata=0 code=3435 +creating hex file from ".\Objects\test14"... +".\Objects\test14" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14.hex b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14.hex new file mode 100644 index 0000000..1ca1db9 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14.hex @@ -0,0 +1,266 @@ +:1009050008570000000000000000083B050A0A0A1D +:100915000A0A0A0A08300000000000000000032847 +:0609250011595601501E9D +:100BF900E4F556F525F526F53AF551F552F52CFFAC +:100C0900EFC39403748094805009742D2FF8E4F68F +:030C19000F80ED5C +:010C1C0022B5 +:100C9E00E4FFEFC3940874809480500F743B2FF8D8 +:0B0CAE00760A74302FF8E4F60F80E7A0 +:010CB9002218 +:10099600C3E54794C8E5469400400BD3E54794D099 +:1009A600E54694074006E4FFFEFDFC22E5472438B1 +:1009B600FFE54634FFFEEF25E0FFEE33FE7C007DCB +:0F09C6002D1202E4EF240AFDE43EFCE41201C905 +:0109D50022FF +:10074300E54560030207FE75450112088B8F21E51D +:10075300236521FF5521F522E521F45FF524852149 +:1007630023E52264047011120C9E0553E55375F0C2 +:10077300038485F053E4F527E55364017014E522FF +:100783006405700E120C9E0527E52775F00384851A +:10079300F027AF537E00EF64027036AD22FCED64A8 +:1007A3000870170550D3E550946374809480400417 +:1007B3007B638002AB508B508017ED64094C701142 +:1007C3001550C37480948050047D008002AD508D19 +:1007D30050EF64014E7024E5276402701EE5226425 +:1007E300097002D202E52464097010C3E54C94D069 +:0B07F300E54B94074003120BF9C20213 +:0107FE0022D8 +:10034700E54445436003020648F5437544017F01D0 +:10035700120B5BE54FD3943274809480401BEF946B +:100367003274809480501220040FD204052CE52C9F +:1003770064647015752C63801030040DC3E54E94CA +:10038700B8E54D940B4002C2048F4F2004030204CA +:10039700EE753D0A753C0AE4F536753B10120AF610 +:1003A700E4FBFA7920784112001E1202028E088FB0 +:1003B70009120996E4FBFA7920784112001E12020D +:1003C700028E0A8F0BAE08AF097C007D641202E42F +:1003D7007C007D0A1202E48D3EAE08AF097C007DE9 +:1003E7000A1202E47C007D0A1202E48D3F75400B7D +:1003F700E50B450A700B152CD20575411175421195 +:10040700227B007A00792D120B2AC205E55075F080 +:100417000AA4FFD3E5099FE50895F04003D38001BF +:10042700C39201C3E52C940274809480401AD3E5EB +:100437000B9555E50A9554400FD3E5099539E5081D +:1004470095384004D2038002C203850A54850B55B0 +:10045700850838850939AE0AAF0B7C007D64120226 +:10046700E47C007D0A1202E48D41AE0AAF0B7C00EA +:100477007D0A1202E47C007D0A1202E48D42D3E574 +:10048700569509E495084004AF568002AF098F5688 +:10049700D3E53A950BE4950A4004AF3A8002AF0BD7 +:1004A7008F3AE52C24FFFBE434FFFAAC25AD26AFE9 +:1004B70003FE1202D2E5092FFFE5083EFEAD2C7CB4 +:1004C700001202E48E258F26AC51AD52AF03AE0267 +:1004D7001202D2E50B2FFFE50A3EFEAD2C7C00127F +:1004E70002E48E518F5222E55314604214700302C6 +:1004F700062F240260030206487B007A007928123F +:100507000B2AE528C4540FF53BE528540FF53C7535 +:100517003D0BE529C4540FF53EE529540FF53F750A +:10052700400BE52AC4540FF541E52A02062AE527C0 +:1005370014605E1470030205F42402600302064887 +:10054700753B0CE52C7003020648E55675F00A84E6 +:1005570075F00A8485F03DE55675F00A8485F03E0E +:10056700753F0BAE25AF267C007D641202E47C004C +:100577007D0A1202E48D40AE25AF267C007D0A126B +:1005870002E47C007D0A1202E48D41AE25AF26808D +:100597004F753B0DE52C7003020648E53A75F00AE6 +:1005A7008475F00A8485F03DE53A75F00A8485F094 +:1005B7003E753F0BAE51AF527C007D641202E47C66 +:1005C700007D0A1202E48D40AE51AF527C007D0AD5 +:1005D7001202E47C007D0A1202E48D41AE51AF5253 +:1005E7007C007D0A1202E48D4275360122753B0EAE +:1005F700E52C75F00A8475F00A8485F03CE52C75C6 +:10060700F00A8485F03DE52C6037E52DC4540FF5DD +:100617003EE52D540FF53F75400BE52EC4540FF5FD +:1006270041E52E540FF54222753B0FE55075F00A50 +:100637008475F00A8485F041E55075F00A8485F0E9 +:010647004270 +:01064800228F +:10095000AF537E00EF70047D0180027D008D57EF64 +:1009600064014E70047F0180027F008F58E553645C +:100970000270047F0180027F008F59300107A200BE +:10098000E433FF80027F008F5AA205E433F55BA2B7 +:0609900003E433F55C22D4 +:100D2E00538E7F5389F0438905E4F58AF58CC28D85 +:030D3E00D28C2232 +:100CF000538EBF53890F758B18758DFCC28FD28EA2 +:050D0000D2ABD2AF22CE +:03001B0002064991 +:10064900C0E0C0F0C083C082C0D075D000C000C077 +:1006590001C002C003C004C005C006C0070545E5C6 +:1006690045640A7002F5450544E544700205436492 +:10067900C845437004F543F5440548E548640870E6 +:1006890002F548054AE54A70020549FFAE49BE032D +:1006990019BFE816754900754A00AF8CEFAD8AF5A8 +:1006A90046EDF547758C00758A00300419054EE54D +:1006B9004E7002054DC394B8E54D940B400E754D2F +:1006C9000B754EB98006754D00754E00300219053F +:1006D9004CE54C7002054BC394D0E54B9407400E92 +:1006E900754B07754CD18006754B00754C00052B71 +:1006F900E52B64647007F52BA200B39200743B25C7 +:1007090048F8E6FD74302548F8E6FBAF48120A8B35 +:1007190074572548F8E624FF9206AF48120A51D0CB +:1007290007D006D005D004D003D002D001D000D024 +:0A073900D0D082D083D0F0D0E0329F +:0E0D410000007F237E337DB6DDFEDEFCDFFA90 +:010D4F002281 +:100C1D00120C81120D2E120CF07B007A0079281225 +:100C2D0009D6120D41120AF6120743120347120993 +:030C3D005080F5EF +:10088B00E4FFC2A9C2C4D2C2D2B5D2B420B3027F94 +:10089B000420B2027F0520B1027F0620B0027F0741 +:1008AB00D2C4C2C2D2B5D2B420B3027F0820B202E6 +:1008BB007F0920B1027F0A20B0027F0BD2C4D2C2C3 +:1008CB00C2B5D2B420B3027F0C20B2027F0D20B18F +:1008DB00027F0E20B0027F0FD2C4D2C2D2B5C2B4F7 +:1008EB0020B3027F1020B2027F1120B1027F1220B1 +:0908FB00B0027F13D2A975B0FF11 +:0109040022D0 +:100CBA00E4FEEEC3940874809480500FC297EF1339 +:0B0CCA0092A3EFC313FFD2970E80E748 +:010CD50022FC +:100D1A00C29300C29700D29300120CBAAF05120C0C +:040D2A00BAC2932294 +:100A1400E4FDC29300C29700D29300120CBAE4FF23 +:100A2400EFC39408748094805011C297EDC313FDF2 +:100A340030A303430580D2970F80E5C29300C29789 +:0C0A440000D29700C2A300D2A300AF05AF +:010A50002283 +:0609D6008B088A09890A62 +:1009DC00E4FD7F8E120D1AE4FCECC3940374809436 +:1009EC0080501EEC25E0FFC374849FFFAB08AA095E +:1009FC00A90A8C82758300120283FD120D1A0C80D9 +:080A0C00D87D807F8E020D1AD7 +:060B2A008B0C8A0D890E00 +:100B3000E4FCECC3940374809480501EEC25E0FF29 +:100B4000C374859FFF120A14AB0CAA0DA90E8C82E8 +:0A0B5000758300EF1202B00C80D88C +:010B5A002278 +:040CD600D2A07F0524 +:100CDA00000000000000000000000000000000AE5C +:060CEA00071FEE70EB2273 +:0F0D5000D2A1120CD6C2A17F05120CDAC2A022CA +:0C0D5F00C2A1120CD6D2A17F05020CDA52 +:020AC100AD077F +:100AC300E4FCECC39408748094805024C2A07F0596 +:100AD300120CDAED30E704D2A18002C2A17F051225 +:100AE3000CDAD2A0ED25E0FD7F05120CDA0C80D2E2 +:020AF300C2A09F +:010AF50022DE +:100BD300E4FCECC39408748094805017120CD6ED97 +:100BE30025E0FD30A103430501C2A07F05120CDA05 +:050BF3000C80DFAF05DE +:010BF80022DA +:030D0500120AC10E +:100D0800120CD6A2A1E433FDC2A07F05120CDAAF03 +:010D180005D5 +:010D190022B7 +:10000300C2A0EF24FF92A17F05120CDA120CD6C214 +:08001300A0D2A17F05020CDA66 +:020B5B00AB07E6 +:100B5D00120D507F90120D05AF03120D05120D50A1 +:100B6D007F91120AC1120D08120BD3AD077F01122E +:070B7D000003120D5FAF053C +:010B8400224E +:100C81007580FFE5A0541F4480F5A053A01FE4F533 +:0D0C910080E5A0541F44A0F5A053A01F2231 +:06092B00010F000110FFA6 +:100A510030060FA8077401088002C333D8FC420F87 +:100A6100800EA8077401088002C333D8FCF4520F2A +:100A7100E50F65106013E50FF4F580E5A0541F4400 +:090A810080F5A053A01F850F10A1 +:010A8A002249 +:040C63007F057E008B +:100C6700EF1FAA0670011E4A600FE4FDEDC3940C46 +:090C77007480948050EA0D80F3B2 +:010C80002251 +:020B8500A907BE +:100B8700E4FBEBC39408748094805012C294E91379 +:100B97009294120C63D294E9C313F90B80E47F0596 +:050BA7007E00020C6756 +:100C4000E4FBEBC39408748094805014C294ECC30A +:100C500013FCD294309403430480120C630B80E2A3 +:020C6000AF04DF +:010C6200226F +:100BAC00C207D2947F0C7E00120C67C2947F507ED9 +:100BBC0000120C67D2947F0A7E00120C67A29492EA +:060BCC0007120C63A207F2 +:010BD2002200 +:100AF600120BAC7FCC120B857F44120B85120BAC0C +:100B06007FCC120B857FBE120B85120C40A90712F3 +:100B16000C40EFAD01FCEC1201C9E4FBFA798078D8 +:040B26004102012760 +:10093100125FC0F9A4B0999282F88090FFBFC68976 +:0E0941008E8C86880871010204081020408008 +:100A8B007580FFE5A0541F44E0F5A074712FF8E6C4 +:100A9B00F580E5A0541F44C0F5A053A01F745F2D33 +:100AAB00F8E6F580EB600353807FE5A0541F44E02C +:060ABB00F5A053A01F226C +:10001E00EC4D6011E8497017ED33EC3304600DE4DC +:10002E00FCFFFEFD22E933E8330470F802026E1283 +:10003E00023958046009E4CC248150062850090284 +:10004E000278284003020275C0E0EB4A7044B98082 +:10005E0006D0E0FB020264EF4E701CBD8008EBFF81 +:10006E00EAFEE9FD80EBE98DF0A4FEE5F002010762 +:10007E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89BD +:10008E00F0A42EFFE435F0CD89F0A42DFEE435F07A +:10009E008067EF4E7005BD80D780C3EF8BF0A4ACA8 +:1000AE00F0EE8BF0A42CFCE435F0F8EF8AF0A42CE3 +:1000BE00E5F038FCE433CB8DF0A42CFCE5F03BF8F6 +:1000CE00EE8AF0A42CFCE5F038F8E433CF89F0A4E6 +:1000DE002CFCE5F038CF3400CE89F0A42FFFE5F0EC +:1000EE003EFEE433C98DF0A42EFEE5F039CD8AF044 +:1000FE00A42FFFE5F03EFEE43DFD33D0E0FB5007BC +:10010E000BBB000F020278EC2CFCEF33FFEE33FE3C +:06011E00ED33FD0202506A +:10012400020278EC5D046005E85904700302026E73 +:10013400120239580460F6EC4860F2EC7004FDFEDB +:10014400FF22C860DB2481C85009C39860025006AE +:100154000202759850CAF582E9294B4A7005AB82B0 +:1001640002026475F0007C1A7880C3EF9BEE9AED6E +:1001740099400DC3EF9BFFEE9AFEED99FDE842F026 +:10018400DC23ACF0D0E0FFD0E0FED0E0FDAB822079 +:10019400E7101BEB60BAEC2CFCEF33FFEE33FEED03 +:1001A40033FD020250E803F830E705C0F075F000B3 +:1001B400EF2FFFEE33FEED33FD40B830E7C280AAE7 +:1001C40075F020800E75F010800575F0087D007EB6 +:1001D400007F003392D530D503120339EC3340103D +:1001E400EF33FFEE33FEED33FDEC33FCD5F0ED22BF +:0E01F400E5F0247EA2D513CC92E7CDCEFF22FB +:10020200EDD2E7CD33EC3392D524814006E4FFFEF4 +:10021200FDFC22FCE4CFCECDCC24E0501174FF8053 +:10022200EDC3CC13CCCD13CDCE13CECF13CF0470F0 +:07023200F030D5DE020339B4 +:10023900E9D2E7C933E833F892D5EDD2E7CD33EC0B +:0702490033FC5002B2D52284 +:10025000EC30E7100FBF000C0EBE00080DBD00040F +:100260000BEB6014A2D5EB13FCED92E7FD2274FFBB +:10027000FCFDFEFF22E480F8A2D574FF13FC7D8014 +:03028000E480EF28 +:030000000207FFF5 +:0C07FF00787FE4F6D8FD7581780208468A +:10028300BB010CE58229F582E5833AF583E0225030 +:1002930006E92582F8E622BBFE06E92582F8E2227A +:0D02A300E58229F582E5833AF583E4932294 +:1002B000F8BB010DE58229F582E5833AF583E8F084 +:1002C000225006E92582C8F622BBFE05E92582C830 +:0202D000F22218 +:1002D200EF8DF0A4A8F0CF8CF0A428CE8DF0A42E40 +:0202E200FE22FA +:1002E400BC000BBE0029EF8DF084FFADF022E4CCFE +:1002F400F875F008EF2FFFEE33FEEC33FCEE9DECC7 +:10030400984005FCEE9DFE0FD5F0E9E4CEFD22ED0C +:10031400F8F5F0EE8420D21CFEADF075F008EF2F56 +:10032400FFED33FD4007985006D5F0F222C398FD47 +:050334000FD5F0EA22E4 +:0E033900C3E49FFFE49EFEE49DFDE49CFC22D5 +:10080B00020C1DE493A3F8E493A34003F68001F2DA +:10081B0008DFF48029E493A3F85407240CC8C333EE +:10082B00C4540F4420C8834004F456800146F6DFBD +:10083B00E4800B0102040810204080900905E47E3F +:10084B00019360BCA3FF543F30E509541FFEE493B2 +:10085B00A360010ECF54C025E060A840B8E493A379 +:10086B00FAE493A3F8E493A3C8C582C8CAC583CAA4 +:10087B00F0A3C8C582C8CAC583CADFE9DEE780BE5C +:01094F0000A7 +:00000001FF diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14.lnp b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14.lnp new file mode 100644 index 0000000..d052af3 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/Objects/test14.lnp @@ -0,0 +1,10 @@ +".\Objects\main.obj", +".\Objects\Key.obj", +".\Objects\ds1302.obj", +".\Objects\iic.obj", +".\Objects\init.obj", +".\Objects\Led.obj", +".\Objects\onewire.obj", +".\Objects\Seg.obj" +TO ".\Objects\test14" +PRINT(".\Listings\test14.m51") RAMSIZE(256) diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/main.c b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/main.c new file mode 100644 index 0000000..14bc681 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/main.c @@ -0,0 +1,381 @@ +#include "main.h" + +/* */ +/* ̷ */ +uchar Key_Slow_Down; + +/* LED */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +/* ܷ */ +uint Seg_Slow_Down; +uchar Seg_Pos; +uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʱ */ +uchar ucRtc[3] = {0x11, 0x59, 0x56}; +uint time_1s; +uint time_2s; +uint time_3s; +uchar time_100ms; +/* */ +uchar Seg_show_mode; // 0 ʱ 1 2 +uchar re_show_mode; // 0 ¶ 1 ʪ 2 ʱ + +/* */ +uchar max_temperature; // ¶ +uint aver_temperature_10x; // ƽ¶ +uint old_temperature_10x; // һε¶ +uchar max_humidity; // ʪ +uint aver_humidity_10x; // ƽʪ +uint old_humidity_10x; // һεʪ +uchar trigger_count; // +uchar trigger_time[3]; // ʱ +uchar para_temperature = 30; // ¶Ȳ +uint freq; + +/* жϲ */ +uchar old_light_value; // һεĹǿ +bit trigger_flag; // ־ +bit long_press_flag; // ־ +bit wring_flag; // ¶ȳ +bit Led_light_flag; // ˸ +bit error_humidity_flag; // ʪǷЧЧΪ1 +bit data_up; // ʪȾ + +/* */ +/* */ +void Clear_Data(void) +{ + uchar i; + max_temperature = 0; // ¶ + aver_temperature_10x = 0; // ƽ¶ + max_humidity = 0; // ʪ + aver_humidity_10x = 0; // ƽʪ + trigger_count = 0; // + for (i = 0; i < 3; i++) + trigger_time[i] = 0; // ʱ +} +/* ܸλ */ +void Seg_Reset(void) +{ + uchar i; + for (i = 0; i < 8; i++) + { + Seg_Buf[i] = 10; + Seg_Point[i] = 0; + } +} +/* ʪȼ */ +float rd_humidity(void) +{ + float humidity_value; + if (freq < 200 || freq > 2000) + return 0; + humidity_value = (freq - 200) * 2 / 45 + 10; + return humidity_value; +} + +/* ̴ */ +void Key_Porc(void) +{ + static uchar Key_Val, Key_Down, Key_Old, Key_Up; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + + if (Key_Down == 4) + { + Seg_Reset(); + Seg_show_mode = (++Seg_show_mode) % 3; + re_show_mode = 0; + } + if (Seg_show_mode == 1 && Key_Down == 5) + { + Seg_Reset(); + re_show_mode = (++re_show_mode) % 3; + } + if (Seg_show_mode == 2) + { + if (Key_Down == 8) + para_temperature = (++para_temperature > 99) ? 99 : para_temperature; + else if (Key_Down == 9) + para_temperature = (--para_temperature < 0) ? 0 : para_temperature; + } + if (Seg_show_mode == 1 && re_show_mode == 2) + { + if (Key_Down == 9) + { + long_press_flag = 1; + } + if (Key_Up == 9) + { + if (time_2s >= 2000) + Clear_Data(); + long_press_flag = 0; + } + } +} + +/* ܴ */ +void Seg_Porc(void) +{ + uint temp_temperature_10x, temp_humidity_10x; + uchar temp_light; + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + temp_light = Ad_Read(0x01); + // ظ + if ((old_light_value > 50) && + (temp_light < 50) && + (trigger_flag == 0)) + { + trigger_flag = 1; + if (++trigger_count == 100) + trigger_count = 99; + } + + // ҵ3s + else if (trigger_flag == 1 && time_3s >= 3000) + trigger_flag = 0; + old_light_value = temp_light; + if (trigger_flag) + { + + Seg_Buf[1] = Seg_Buf[2] = 10; + Seg_Point[6] = 0; + /* ʪȽ */ + Seg_Buf[0] = 16; // E + temp_temperature_10x = rd_temperature() * 10; + temp_humidity_10x = rd_humidity() * 10; + Seg_Buf[3] = temp_temperature_10x / 100 % 10; + Seg_Buf[4] = temp_temperature_10x / 10 % 10; + Seg_Buf[5] = 11; //- + // Ч + if (temp_humidity_10x == 0) + { + trigger_count--; + error_humidity_flag = 1; + Seg_Buf[6] = 17; // A + Seg_Buf[7] = 17; // A + } + // Ч + else + { + Read_Rtc(trigger_time); + error_humidity_flag = 0; // Ч + wring_flag = (temp_temperature_10x > para_temperature * 10); + if ((trigger_count >= 2) && + (temp_humidity_10x > old_humidity_10x) && + (temp_temperature_10x > old_temperature_10x)) + data_up = 1; + else + data_up = 0; + old_humidity_10x = temp_humidity_10x; + old_temperature_10x = temp_temperature_10x; + Seg_Buf[6] = temp_humidity_10x / 100 % 10; + Seg_Buf[7] = temp_humidity_10x / 10 % 10; + max_temperature = (max_temperature > temp_temperature_10x) ? max_temperature : temp_temperature_10x; + max_humidity = (max_humidity > temp_humidity_10x) ? max_humidity : temp_humidity_10x; + aver_temperature_10x = (aver_temperature_10x * (trigger_count - 1) + temp_temperature_10x) / (trigger_count); + aver_humidity_10x = (aver_humidity_10x * (trigger_count - 1) + temp_humidity_10x) / (trigger_count); + } + } + else + { + switch (Seg_show_mode) + { + case 0: + /* ʱ */ + Read_Rtc(ucRtc); + Seg_Buf[0] = ucRtc[0] / 16; + Seg_Buf[1] = ucRtc[0] % 16; + Seg_Buf[2] = 11; //- + Seg_Buf[3] = ucRtc[1] / 16; + Seg_Buf[4] = ucRtc[1] % 16; + Seg_Buf[5] = 11; //- + Seg_Buf[6] = ucRtc[2] / 16; + Seg_Buf[7] = ucRtc[2] % 16; + break; + case 1: + /* */ + switch (re_show_mode) + { + case 0: + /* ¶ */ + Seg_Buf[0] = 12; // C + if (trigger_count != 0) + { + Seg_Buf[2] = max_temperature / 10 % 10; + Seg_Buf[3] = max_temperature % 10; + Seg_Buf[4] = 11; //- + Seg_Buf[5] = aver_temperature_10x / 100 % 10; + Seg_Buf[6] = aver_temperature_10x / 10 % 10; + Seg_Buf[7] = aver_temperature_10x % 10; + Seg_Point[6] = 1; + } + break; + case 1: + /* ʪ */ + Seg_Buf[0] = 13; // H + if (trigger_count != 0) + { + Seg_Buf[2] = max_humidity / 10 % 10; + Seg_Buf[3] = max_humidity % 10; + Seg_Buf[4] = 11; //- + Seg_Buf[5] = aver_humidity_10x / 100 % 10; + Seg_Buf[6] = aver_humidity_10x / 10 % 10; + Seg_Buf[7] = aver_humidity_10x % 10; + Seg_Point[6] = 1; + } + break; + case 2: + /* ʱ */ + Seg_Buf[0] = 14; // F + Seg_Buf[1] = trigger_count / 10 % 10; + Seg_Buf[2] = trigger_count % 10; + if (trigger_count != 0) + { + Seg_Buf[3] = trigger_time[0] / 16; + Seg_Buf[4] = trigger_time[0] % 16; + Seg_Buf[5] = 11; //- + Seg_Buf[6] = trigger_time[1] / 16; + Seg_Buf[7] = trigger_time[1] % 16; + } + break; + } + break; + case 2: + /* */ + Seg_Buf[0] = 15; // P + Seg_Buf[6] = para_temperature / 10 % 10; + Seg_Buf[7] = para_temperature % 10; + break; + } + } +} + +/* LED */ +void Led_Porc(void) +{ + /* */ + ucLed[0] = (Seg_show_mode == 0); + ucLed[1] = (Seg_show_mode == 1); + ucLed[2] = (Seg_show_mode == 2); + /* */ + ucLed[3] = (wring_flag) ? Led_light_flag : 0; + ucLed[4] = error_humidity_flag; + ucLed[5] = data_up; +} + +/* ʱ/ */ +/* */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TMOD |= 0x05; // öʱģʽ + TL0 = 0; // öʱʼֵ + TH0 = 0; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ +} +/* ʱ */ +void Timer1_Init(void) // 1@12.000MHz +{ + AUXR &= 0xBF; // ʱʱ12Tģʽ + TMOD &= 0x0F; // öʱģʽ + TL1 = 0x18; // öʱʼֵ + TH1 = 0xFC; // öʱʼֵ + TF1 = 0; // TF1־ + TR1 = 1; // ʱ1ʼʱ + ET1 = 1; // ʱ1ж + EA = 1; // ж +} +/* ʱ */ +void Timer1_ISR(void) interrupt 3 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 200) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (++time_1s == 1000) + { + time_1s = 0; + freq = TH0 << 8 | TL0; + TH0 = 0; + TL0 = 0; + } + if (trigger_flag) + { + if (++time_3s >= 3000) + { + time_3s = 3001; + } + } + else + time_3s = 0; + // ʼʱ + if (long_press_flag) + { + if (++time_2s >= 2000) + { + time_2s = 2001; + } + } + else + time_2s = 0; + // ڱ + + if (++time_100ms == 100) + { + time_100ms = 0; + Led_light_flag ^= 1; + } + + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} + +void main() +{ + + System_Init(); + Timer0_Init(); + Timer1_Init(); + Set_Rtc(ucRtc); + Delay750ms(); + rd_temperature(); + while (1) + { + Key_Porc(); + Seg_Porc(); + Led_Porc(); + } +} \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/main.h b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/main.h new file mode 100644 index 0000000..a0cffd0 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/main.h @@ -0,0 +1,12 @@ +#include "STC15F2K60S2.H" +#include "iic.h" +#include "onewire.h" +#include "ds1302.h" +#include "Key.h" +#include "Led.h" +#include "Seg.h" +#include "intrins.h" +#include "init.h" + +#define uchar unsigned char +#define uint unsigned int \ No newline at end of file diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvgui.ZBright b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvgui.ZBright new file mode 100644 index 0000000..9271040 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvgui.ZBright @@ -0,0 +1,1878 @@ + + + + -6.1 + +
### uVision Project, (C) Keil Software
+ + + + + + + + + + 38003 + Registers + 188 122 + + + 346 + Code Coverage + 1410 160 + + + 204 + Performance Analyzer + 1570 + + + + + + 35141 + Event Statistics + + 200 50 700 + + + 1506 + Symbols + + 106 106 106 + + + 1936 + Watch 1 + + 200 133 133 + + + 1937 + Watch 2 + + 200 133 133 + + + 1935 + Call Stack + Locals + + 200 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + 466 + Source Browser + 500 + 300 + + + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 34 + 473 + 1874 + 1375 + + + + 0 + + 289 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000100000000000000010000005D443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CCCE2C4BF5CD5E6CCE25C313420B5DACAAECBC4BDECCAA1C8FC5FD7F3E1B05CB5DACAAECBC4BDECCAA1C8FC5C757365725C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000025030000900000004A0700007C040000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 440100004F0000007007000013010000 + + + 16 + 7000000087000000280400004B010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 7000000087000000B001000098010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000000103000070070000C5030000 + + + 16 + 7000000087000000280400004B010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000280400004B010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000280400004B010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000280400004B010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 33060000660000006D07000047010000 + + + 16 + 7000000087000000B001000098010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + 7000000087000000B001000098010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000B001000098010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000B001000098010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000280400004B010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000280400004B010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000280400004B010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000280400004B010000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D01000022040000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000530400006905000003050000 + + + 16 + 7000000087000000280400004B010000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000ED02000070070000C5030000 + + + 16 + 7000000087000000280400004B010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006D070000EA040000 + + + 16 + 7000000087000000280400004B010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 44010000630000007007000013010000 + + + 16 + 7000000087000000280400004B010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 300600006300000070070000FD020000 + + + 16 + 7000000087000000B001000098010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000000103000070070000B1030000 + + + 16 + 7000000087000000280400004B010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 44010000630000007007000013010000 + + + 16 + 7000000087000000B001000098010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AC030000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000530400007007000003050000 + + + 16 + 7000000087000000280400004B010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006D070000EA040000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000B001000098010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000B001000098010000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006D070000EA040000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000560400006D070000EA040000 + + + 16 + 7000000087000000EC0100009B030000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + 7000000087000000280400004B010000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D0700001C020000 + + + 16 + 7000000087000000B001000098010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000030500006905000016050000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D07000098030000 + + + 16 + 7000000087000000B001000098010000 + + + + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000130100007007000017010000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000007000000087000000280400004B010000440100004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000007000000087000000B001000098010000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F000000440100003B040000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000007000000087000000B001000098010000000000004F000000400100003B0400000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E902000070070000ED02000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000007000000087000000B00100009801000000000000ED02000070070000C503000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000ED020000BC030000C503000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000003B040000690500003F040000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000007000000087000000280400004B010000000000003F04000069050000030500000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2537 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 972 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 2560 + 1440 + + + + + + 1 + 0 + + 100 + 0 + + .\main.c + 0 + 61 + 1 + 1 + + 0 + + + + +
diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvgui.haze b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvgui.haze new file mode 100644 index 0000000..d8706ce --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvgui.haze @@ -0,0 +1,1414 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 302 + 282 + 1434 + 790 + + + + 0 + + 1025 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000007000000060000000100000062433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313420B5DACAAECBC4BDECCAA1C8FC5CB5DACAAECBC4BDECCAA1C8FC5C6472697665725C5365672E6800000000055365672E6800000000D9ADC200FFFFFFFF62433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313420B5DACAAECBC4BDECCAA1C8FC5CB5DACAAECBC4BDECCAA1C8FC5C6472697665725C5365672E6300000000055365672E6300000000F7B88600FFFFFFFF62433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313420B5DACAAECBC4BDECCAA1C8FC5CB5DACAAECBC4BDECCAA1C8FC5C6472697665725C6969632E6300000000056969632E63000000009CC1B600FFFFFFFF62433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313420B5DACAAECBC4BDECCAA1C8FC5CB5DACAAECBC4BDECCAA1C8FC5C6472697665725C4B65792E6300000000054B65792E6300000000BCA8E100FFFFFFFF65433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313420B5DACAAECBC4BDECCAA1C8FC5CB5DACAAECBC4BDECCAA1C8FC5C6472697665725C6473313330322E6300000000086473313330322E6300000000F0A0A100FFFFFFFF62433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313420B5DACAAECBC4BDECCAA1C8FC5CB5DACAAECBC4BDECCAA1C8FC5C6472697665725C6969632E6800000000056969632E6800000000BECEA100FFFFFFFF61433A5C55736572735C68617A655C4465736B746F705C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313420B5DACAAECBC4BDECCAA1C8FC5CB5DACAAECBC4BDECCAA1C8FC5C757365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E0000000006000023010000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100007E00000070040000EB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000DB000000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000DB000000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000DB000000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000DB000000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000000C01000000060000E5020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000000F010000FD050000C2010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000000F010000FD050000C2010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000000F010000FD050000C2010000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000EB000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000CF010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000F4000000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100004E020000000000004F00000090010000F40000000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000BF01000070040000400200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000F400000000060000F80000000100000001000010040000000100000056FEFFFFE1000000FFFFFFFF04000000C5000000C7000000B401000077940000018000800000010000000000000052020000000600003503000000000000F800000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2002 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 6 + + ..\driver\Seg.h + 75 + 1 + 2 + 1 + + 0 + + + ..\driver\Seg.c + 0 + 1 + 8 + 1 + + 0 + + + ..\driver\iic.c + 0 + 116 + 144 + 1 + + 0 + + + ..\driver\Key.c + 0 + 1 + 1 + 1 + + 0 + + + ..\driver\ds1302.c + 0 + 5 + 13 + 1 + + 0 + + + ..\driver\iic.h + 0 + 1 + 3 + 1 + + 0 + + + .\main.c + 33 + 154 + 164 + 1 + + 0 + + + + +
diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvopt b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvopt new file mode 100644 index 0000000..11786f6 --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvopt @@ -0,0 +1,277 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + -1 + + + + + + + + + + + + + + + 0 + + + 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 + + + + + + + + + + + + + user + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + ..\driver\Key.c + Key.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + ..\driver\ds1302.c + ds1302.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\driver\iic.c + iic.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\driver\init.c + init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + ..\driver\Led.c + Led.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + ..\driver\onewire.c + onewire.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + ..\driver\Seg.c + Seg.c + 0 + 0 + + + +
diff --git a/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvproj b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvproj new file mode 100644 index 0000000..347676a --- /dev/null +++ b/题目/真题/14 第十四届省赛_左岚/第十四届省赛/user/test14.uvproj @@ -0,0 +1,430 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + 8 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + test14 + 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 + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\driver;..\user + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + user + + + main.c + 1 + .\main.c + + + + + driver + + + Key.c + 1 + ..\driver\Key.c + + + ds1302.c + 1 + ..\driver\ds1302.c + + + iic.c + 1 + ..\driver\iic.c + + + init.c + 1 + ..\driver\init.c + + + Led.c + 1 + ..\driver\Led.c + + + onewire.c + 1 + ..\driver\onewire.c + + + Seg.c + 1 + ..\driver\Seg.c + + + + + + + +
diff --git a/题目/真题/15 第十五届国赛/第十五届国赛.pdf b/题目/真题/15 第十五届国赛/第十五届国赛.pdf new file mode 100644 index 0000000..5990bd9 Binary files /dev/null and b/题目/真题/15 第十五届国赛/第十五届国赛.pdf differ diff --git a/题目/真题/15 第十五届省赛_左岚_省一/15P1D_SCMA.pdf b/题目/真题/15 第十五届省赛_左岚_省一/15P1D_SCMA.pdf new file mode 100644 index 0000000..1d59c89 Binary files /dev/null and b/题目/真题/15 第十五届省赛_左岚_省一/15P1D_SCMA.pdf differ diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/Key.lst b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/Key.lst new file mode 100644 index 0000000..e068429 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/Key.lst @@ -0,0 +1,46 @@ +C51 COMPILER V9.59.0.0 KEY 04/29/2024 18:40:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\driver;.\user) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 + 3 unsigned char Key_Scan() + 4 { + 5 1 unsigned char temp = 0; + 6 1 P44=0;P42=1;P35=1; + 7 1 if(P30==0)temp=7; + 8 1 if(P31==0)temp=6; + 9 1 if(P32==0)temp=5; + 10 1 if(P33==0)temp=4; + 11 1 P44=1;P42=0;P35=1; + 12 1 if(P30==0)temp=11; + 13 1 if(P31==0)temp=10; + 14 1 if(P32==0)temp=9; + 15 1 if(P33==0)temp=8; + 16 1 P44=1;P42=1;P35=0; + 17 1 if(P30==0)temp=15; + 18 1 if(P31==0)temp=14; + 19 1 if(P32==0)temp=13; + 20 1 if(P33==0)temp=12; + 21 1 return temp; + 22 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 81 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/Led.lst b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/Led.lst new file mode 100644 index 0000000..3840ac3 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/Led.lst @@ -0,0 +1,41 @@ +C51 COMPILER V9.59.0.0 LED 04/29/2024 18:40:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\driver;.\user) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 void Led_Disp(unsigned char addr,unsigned char enable) + 3 { + 4 1 static unsigned char temp=0x00; + 5 1 static unsigned char temp_old=0xff; + 6 1 if(enable) + 7 1 temp |= 1<>> *** + 8 ;------------------------------------------------------------------------------ + 9 ; STARTUP.A51: This code is executed after processor reset. + 10 ; + 11 ; To translate this file use A51 with the following invocation: + 12 ; + 13 ; A51 STARTUP.A51 + 14 ; + 15 ; To link the modified STARTUP.OBJ file to your application use the following + 16 ; Lx51 invocation: + 17 ; + 18 ; Lx51 your object file list, STARTUP.OBJ controls + 19 ; + 20 ;------------------------------------------------------------------------------ + 21 ; + 22 ; User-defined Power-On Initialization of Memory + 23 ; + 24 ; With the following EQU statements the initialization of memory + 25 ; at processor reset can be defined: + 26 ; + 27 ; IDATALEN: IDATA memory size <0x0-0x100> + 28 ; Note: The absolute start-address of IDATA memory is always 0 + 29 ; The IDATA space overlaps physically the DATA and BIT areas. + 0080 30 IDATALEN EQU 80H + 31 ; + 32 ; XDATASTART: XDATA memory start address <0x0-0xFFFF> + 33 ; The absolute start address of XDATA memory + 0000 34 XDATASTART EQU 0 + 35 ; + 36 ; XDATALEN: XDATA memory size <0x0-0xFFFF> + 37 ; The length of XDATA memory in bytes. + 0000 38 XDATALEN EQU 0 + 39 ; + 40 ; PDATASTART: PDATA memory start address <0x0-0xFFFF> + 41 ; The absolute start address of PDATA memory + 0000 42 PDATASTART EQU 0H + 43 ; + 44 ; PDATALEN: PDATA memory size <0x0-0xFF> + 45 ; The length of PDATA memory in bytes. + 0000 46 PDATALEN EQU 0H + 47 ; + 48 ; + 49 ;------------------------------------------------------------------------------ + 50 ; + 51 ; Reentrant Stack Initialization + 52 ; + 53 ; The following EQU statements define the stack pointer for reentrant + 54 ; functions and initialized it: + 55 ; + 56 ; Stack Space for reentrant functions in the SMALL model. + 57 ; IBPSTACK: Enable SMALL model reentrant stack + A51 MACRO ASSEMBLER STARTUP 04/29/2024 18:40:04 PAGE 2 + + 58 ; Stack space for reentrant functions in the SMALL model. + 0000 59 IBPSTACK EQU 0 ; set to 1 if small reentrant is used. + 60 ; IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF> + 61 ; Set the top of the stack to the highest location. + 0100 62 IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 + 63 ; + 64 ; + 65 ; Stack Space for reentrant functions in the LARGE model. + 66 ; XBPSTACK: Enable LARGE model reentrant stack + 67 ; Stack space for reentrant functions in the LARGE model. + 0000 68 XBPSTACK EQU 0 ; set to 1 if large reentrant is used. + 69 ; XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF> + 70 ; Set the top of the stack to the highest location. + 0000 71 XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1 + 72 ; + 73 ; + 74 ; Stack Space for reentrant functions in the COMPACT model. + 75 ; PBPSTACK: Enable COMPACT model reentrant stack + 76 ; Stack space for reentrant functions in the COMPACT model. + 0000 77 PBPSTACK EQU 0 ; set to 1 if compact reentrant is used. + 78 ; + 79 ; PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF> + 80 ; Set the top of the stack to the highest location. + 0100 81 PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 + 82 ; + 83 ; + 84 ;------------------------------------------------------------------------------ + 85 ; + 86 ; Memory Page for Using the Compact Model with 64 KByte xdata RAM + 87 ; Compact Model Page Definition + 88 ; + 89 ; Define the XDATA page used for PDATA variables. + 90 ; PPAGE must conform with the PPAGE set in the linker invocation. + 91 ; + 92 ; Enable pdata memory page initalization + 0000 93 PPAGEENABLE EQU 0 ; set to 1 if pdata object are used. + 94 ; + 95 ; PPAGE number <0x0-0xFF> + 96 ; uppermost 256-byte address of the page used for PDATA variables. + 0000 97 PPAGE EQU 0 + 98 ; + 99 ; SFR address which supplies uppermost address byte <0x0-0xFF> + 100 ; most 8051 variants use P2 as uppermost address byte + 00A0 101 PPAGE_SFR DATA 0A0H + 102 ; + 103 ; + 104 ;------------------------------------------------------------------------------ + 105 + 106 ; Standard SFR Symbols + 00E0 107 ACC DATA 0E0H + 00F0 108 B DATA 0F0H + 0081 109 SP DATA 81H + 0082 110 DPL DATA 82H + 0083 111 DPH DATA 83H + 112 + 113 NAME ?C_STARTUP + 114 + 115 + 116 ?C_C51STARTUP SEGMENT CODE + 117 ?STACK SEGMENT IDATA + 118 +---- 119 RSEG ?STACK +0000 120 DS 1 + 121 + 122 EXTRN CODE (?C_START) + 123 PUBLIC ?C_STARTUP + A51 MACRO ASSEMBLER STARTUP 04/29/2024 18:40:04 PAGE 3 + + 124 +---- 125 CSEG AT 0 +0000 020000 F 126 ?C_STARTUP: LJMP STARTUP1 + 127 +---- 128 RSEG ?C_C51STARTUP + 129 +0000 130 STARTUP1: + 131 + 132 IF IDATALEN <> 0 +0000 787F 133 MOV R0,#IDATALEN - 1 +0002 E4 134 CLR A +0003 F6 135 IDATALOOP: MOV @R0,A +0004 D8FD 136 DJNZ R0,IDATALOOP + 137 ENDIF + 138 + 139 IF XDATALEN <> 0 + MOV DPTR,#XDATASTART + MOV R7,#LOW (XDATALEN) + IF (LOW (XDATALEN)) <> 0 + MOV R6,#(HIGH (XDATALEN)) +1 + ELSE + MOV R6,#HIGH (XDATALEN) + ENDIF + CLR A + XDATALOOP: MOVX @DPTR,A + INC DPTR + DJNZ R7,XDATALOOP + DJNZ R6,XDATALOOP + ENDIF + 153 + 154 IF PPAGEENABLE <> 0 + MOV PPAGE_SFR,#PPAGE + ENDIF + 157 + 158 IF PDATALEN <> 0 + MOV R0,#LOW (PDATASTART) + MOV R7,#LOW (PDATALEN) + CLR A + PDATALOOP: MOVX @R0,A + INC R0 + DJNZ R7,PDATALOOP + ENDIF + 166 + 167 IF IBPSTACK <> 0 + EXTRN DATA (?C_IBP) + + MOV ?C_IBP,#LOW IBPSTACKTOP + ENDIF + 172 + 173 IF XBPSTACK <> 0 + EXTRN DATA (?C_XBP) + + MOV ?C_XBP,#HIGH XBPSTACKTOP + MOV ?C_XBP+1,#LOW XBPSTACKTOP + ENDIF + 179 + 180 IF PBPSTACK <> 0 + EXTRN DATA (?C_PBP) + MOV ?C_PBP,#LOW PBPSTACKTOP + ENDIF + 184 +0006 758100 F 185 MOV SP,#?STACK-1 + 186 + 187 ; This code is required if you use L51_BANK.A51 with Banking Mode 4 + 188 ; Code Banking + 189 ; Select Bank 0 for L51_BANK.A51 Mode 4 + A51 MACRO ASSEMBLER STARTUP 04/29/2024 18:40:04 PAGE 4 + + 190 + + + + + 195 ; +0009 020000 F 196 LJMP ?C_START + 197 + 198 END + A51 MACRO ASSEMBLER STARTUP 04/29/2024 18:40:04 PAGE 5 + +SYMBOL TABLE LISTING +------ ----- ------- + + +N A M E T Y P E V A L U E ATTRIBUTES + +?C_C51STARTUP. . . C SEG 000CH REL=UNIT +?C_START . . . . . C ADDR ----- EXT +?C_STARTUP . . . . C ADDR 0000H A +?STACK . . . . . . I SEG 0001H REL=UNIT +ACC. . . . . . . . D ADDR 00E0H A +B. . . . . . . . . D ADDR 00F0H A +DPH. . . . . . . . D ADDR 0083H A +DPL. . . . . . . . D ADDR 0082H A +IBPSTACK . . . . . N NUMB 0000H A +IBPSTACKTOP. . . . N NUMB 0100H A +IDATALEN . . . . . N NUMB 0080H A +IDATALOOP. . . . . C ADDR 0003H R SEG=?C_C51STARTUP +PBPSTACK . . . . . N NUMB 0000H A +PBPSTACKTOP. . . . N NUMB 0100H A +PDATALEN . . . . . N NUMB 0000H A +PDATASTART . . . . N NUMB 0000H A +PPAGE. . . . . . . N NUMB 0000H A +PPAGEENABLE. . . . N NUMB 0000H A +PPAGE_SFR. . . . . D ADDR 00A0H A +SP . . . . . . . . D ADDR 0081H A +STARTUP1 . . . . . C ADDR 0000H R SEG=?C_C51STARTUP +XBPSTACK . . . . . N NUMB 0000H A +XBPSTACKTOP. . . . N NUMB 0000H A +XDATALEN . . . . . N NUMB 0000H A +XDATASTART . . . . N NUMB 0000H A + + +REGISTER BANK(S) USED: 0 + + +ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/Seg.lst b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/Seg.lst new file mode 100644 index 0000000..b186f49 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/Seg.lst @@ -0,0 +1,45 @@ +C51 COMPILER V9.59.0.0 SEG 04/29/2024 18:40:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\driver;.\user) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // 0-9 + 3 // F P - H A L + 4 code unsigned char Seg_dula[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff, + 5 0x8e,0x8c,0xbf,0x89,0x88,0xc7}; + 6 void Seg_Disp(unsigned char wela,unsigned char dula,unsigned char point) + 7 { + 8 1 P0 = 0xff; + 9 1 P2 = P2 & 0x1f | 0xe0; + 10 1 P2 &= 0x1f; + 11 1 + 12 1 P0 = 0x01 << wela; + 13 1 P2 = P2 & 0x1f | 0xc0; + 14 1 P2 &= 0x1f; + 15 1 + 16 1 P0 = Seg_dula[dula]; + 17 1 if(point) + 18 1 P0 &= 0x7f; + 19 1 P2 = P2 & 0x1f | 0xe0; + 20 1 P2 &= 0x1f; + 21 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 63 ---- + CONSTANT SIZE = 17 ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/ds1302.lst b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/ds1302.lst new file mode 100644 index 0000000..6a36bf5 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/ds1302.lst @@ -0,0 +1,99 @@ +C51 COMPILER V9.59.0.0 DS1302 04/29/2024 18:40:05 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\driver;.\user) DEBUG O + -BJECTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "intrins.h" + 8 sbit SCK = P1^7; + 9 sbit SDA = P2^3; + 10 sbit RST = P1^3; + 11 // + 12 void Write_Ds1302(unsigned char temp) + 13 { + 14 1 unsigned char i; + 15 1 for (i=0;i<8;i++) + 16 1 { + 17 2 SCK = 0; + 18 2 SDA = temp&0x01; + 19 2 temp>>=1; + 20 2 SCK=1; + 21 2 } + 22 1 } + 23 + 24 // + 25 void Write_Ds1302_Byte( unsigned char address,unsigned char dat ) + 26 { + 27 1 RST=0; _nop_(); + 28 1 SCK=0; _nop_(); + 29 1 RST=1; _nop_(); + 30 1 Write_Ds1302(address); + 31 1 Write_Ds1302(dat); + 32 1 RST=0; + 33 1 } + 34 + 35 // + 36 unsigned char Read_Ds1302_Byte ( unsigned char address ) + 37 { + 38 1 unsigned char i,temp=0x00; + 39 1 RST=0; _nop_(); + 40 1 SCK=0; _nop_(); + 41 1 RST=1; _nop_(); + 42 1 Write_Ds1302(address); + 43 1 for (i=0;i<8;i++) + 44 1 { + 45 2 SCK=0; + 46 2 temp>>=1; + 47 2 if(SDA) + 48 2 temp|=0x80; + 49 2 SCK=1; + 50 2 } + 51 1 RST=0; _nop_(); + 52 1 SCK=0; _nop_(); + 53 1 SCK=1; _nop_(); + C51 COMPILER V9.59.0.0 DS1302 04/29/2024 18:40:05 PAGE 2 + + 54 1 SDA=0; _nop_(); + 55 1 SDA=1; _nop_(); + 56 1 return (temp); + 57 1 } + 58 + 59 void Set_Rtc(unsigned char *Rtc) + 60 { + 61 1 unsigned char i ; + 62 1 Write_Ds1302_Byte(0x8e,0x00);//关闭写保护 + 63 1 for( i = 0;i < 3 ; i++) + 64 1 Write_Ds1302_Byte(0x84-2*i,Rtc[i]); + 65 1 Write_Ds1302_Byte(0x8e,0x80);//开启写保护 + 66 1 } + 67 void Read_Rtc(unsigned char *Rtc) + 68 { + 69 1 unsigned char i ; + 70 1 for( i = 0;i < 3 ; i++) + 71 1 Rtc[i]=Read_Ds1302_Byte(0x85-2*i); + 72 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/iic.lst b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/iic.lst new file mode 100644 index 0000000..cd2436e --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/iic.lst @@ -0,0 +1,118 @@ +C51 COMPILER V9.59.0.0 IIC 04/29/2024 18:40:05 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\driver;.\user) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 10 + 9 sbit sda = P2^1; + 10 sbit scl = P2^0; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_();_nop_();_nop_();_nop_();_nop_(); + 17 2 _nop_();_nop_();_nop_();_nop_();_nop_(); + 18 2 _nop_();_nop_();_nop_();_nop_();_nop_(); + 19 2 } + 20 1 while(n--); + 21 1 } + 22 + 23 // + 24 void I2CStart(void) + 25 { + 26 1 sda = 1; + 27 1 scl = 1; + 28 1 I2C_Delay(DELAY_TIME); + 29 1 sda = 0; + 30 1 I2C_Delay(DELAY_TIME); + 31 1 scl = 0; + 32 1 } + 33 + 34 // + 35 void I2CStop(void) + 36 { + 37 1 sda = 0; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 1; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 } + 43 + 44 // + 45 void I2CSendByte(unsigned char byt) + 46 { + 47 1 unsigned char i; + 48 1 + 49 1 for(i=0; i<8; i++){ + 50 2 scl = 0; + 51 2 I2C_Delay(DELAY_TIME); + 52 2 if(byt & 0x80){ + 53 3 sda = 1; + C51 COMPILER V9.59.0.0 IIC 04/29/2024 18:40:05 PAGE 2 + + 54 3 } + 55 2 else{ + 56 3 sda = 0; + 57 3 } + 58 2 I2C_Delay(DELAY_TIME); + 59 2 scl = 1; + 60 2 byt <<= 1; + 61 2 I2C_Delay(DELAY_TIME); + 62 2 } + 63 1 + 64 1 scl = 0; + 65 1 } + 66 + 67 // + 68 unsigned char I2CWaitAck(void) + 69 { + 70 1 unsigned char ackbit; + 71 1 + 72 1 scl = 1; + 73 1 I2C_Delay(DELAY_TIME); + 74 1 ackbit = sda; + 75 1 scl = 0; + 76 1 I2C_Delay(DELAY_TIME); + 77 1 + 78 1 return ackbit; + 79 1 } + 80 + 81 void Da_Write(unsigned char dat) + 82 { + 83 1 I2CStart(); + 84 1 I2CSendByte(0x90); + 85 1 I2CWaitAck(); + 86 1 I2CSendByte(0x41); + 87 1 I2CWaitAck(); + 88 1 I2CSendByte(dat); + 89 1 I2CWaitAck(); + 90 1 I2CStop(); + 91 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 153 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/init.lst b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/init.lst new file mode 100644 index 0000000..5a34830 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/init.lst @@ -0,0 +1,35 @@ +C51 COMPILER V9.59.0.0 INIT 04/29/2024 18:40:05 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE driver\init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\driver;.\user) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\init.lst) TABS(2) OBJECT(.\Objects\init.obj) + +line level source + + 1 #include "init.h" + 2 void System_Init() + 3 { + 4 1 P0 = 0xff; + 5 1 P2 = P2 & 0x1f| 0x80; + 6 1 P2 &= 0x1f; + 7 1 + 8 1 P0 = 0x00; + 9 1 P2 = P2 & 0x1f| 0xa0; + 10 1 P2 &= 0x1f; + 11 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/main.lst b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/main.lst new file mode 100644 index 0000000..a8900d2 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/main.lst @@ -0,0 +1,342 @@ +C51 COMPILER V9.59.0.0 MAIN 04/29/2024 18:40:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE user\main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\driver;.\user) DEBUG OBJEC + -TEXTEND PRINT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 + 3 /* LedSeg */ + 4 unsigned char ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 5 unsigned char Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; + 6 unsigned char Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 7 unsigned char Seg_Pos; + 8 /* ʱ */ + 9 unsigned int Time_1s; + 10 unsigned char ucRtc[3] = {0x00, 0x00, 0x00}; + 11 unsigned char MAX_Rtc[3]; + 12 unsigned char Time_200ms_Freq; // Ƶ˸ʱ200ms + 13 unsigned char Time_200ms_Wring; // ֵ˸ʱ200ms + 14 /* */ + 15 unsigned int Freq; // Ƶ + 16 unsigned int Freq_CAL; // ƵУ׼ֵ + 17 unsigned int Freq_MAX; // Ƶ + 18 unsigned int Para_Limit = 2000; // ޲ 1000 - 9000 + 19 int Para_Right = 0; // У׼ -900 - 900 + 20 float Da_Out_Amp; // ѹģֵ + 21 unsigned char Da_Out_Dig; // ѹֵ + 22 /* ʾ */ + 23 unsigned char Seg_Show_Mode; // 0 Ƶʽ 1 2 ʱ 3 Խ + 24 unsigned char Para_Mode; // 0 ޲ 1 У׼ֵ + 25 unsigned char Re_Show_Mode; // 0 Ƶʻ 1 ʱ + 26 /* ж */ + 27 bit Freq_Error; // СУ׼ + 28 bit Led_Blink_Flag_Freq; // Ƶʲ˸־ + 29 bit Led_Blink_Flag_Wring; // ֵ˸־ + 30 bit Freq_Wring; // ޲ + 31 + 32 void Key_Proc() + 33 { + 34 1 static unsigned char Key_Val, Key_Old, Key_Down, Key_Up; + 35 1 if (Time_1s % 10) + 36 1 return; + 37 1 Key_Val = Key_Scan(); + 38 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 39 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 40 1 Key_Old = Key_Val; + 41 1 if (Key_Down == 4) + 42 1 { + 43 2 Seg_Show_Mode = (++Seg_Show_Mode) % 4; + 44 2 Para_Mode = Re_Show_Mode = 0; + 45 2 } + 46 1 switch (Seg_Show_Mode) + 47 1 { + 48 2 case 1: + 49 2 /* ҳ */ + 50 2 if (Key_Down == 5) + 51 2 Para_Mode = (++Para_Mode) % 2; + 52 2 switch (Para_Mode) + 53 2 { + 54 3 case 0: + C51 COMPILER V9.59.0.0 MAIN 04/29/2024 18:40:04 PAGE 2 + + 55 3 /* ޲ */ + 56 3 if (Key_Down == 8) + 57 3 Para_Limit = (Para_Limit == 9000) ? 1000 : Para_Limit + 1000; + 58 3 else if (Key_Down == 9) + 59 3 Para_Limit = (Para_Limit == 1000) ? 9000 : Para_Limit - 1000; + 60 3 break; + 61 3 case 1: + 62 3 /* У׼ֵ */ + 63 3 if (Key_Down == 8) + 64 3 Para_Right = (Para_Right == 900) ? -900 : Para_Right + 100; + 65 3 else if (Key_Down == 9) + 66 3 Para_Right = (Para_Right == -900) ? 900 : Para_Right - 100; + 67 3 break; + 68 3 break; + 69 3 } + 70 2 break; + 71 2 case 3: + 72 2 /* ҳ */ + 73 2 if (Key_Down == 5) + 74 2 Re_Show_Mode = (++Re_Show_Mode) % 2; + 75 2 break; + 76 2 } + 77 1 } + 78 void Seg_Proc() + 79 { + 80 1 unsigned int Para_Temp; + 81 1 Para_Temp = -Para_Right; + 82 1 if (Time_1s % 20) + 83 1 return; + 84 1 Read_Rtc(ucRtc); + 85 1 if (Freq_CAL > Freq_MAX) + 86 1 { + 87 2 Freq_MAX = Freq_CAL; + 88 2 Read_Rtc(MAX_Rtc); + 89 2 } + 90 1 if (Freq_Error) + 91 1 Da_Out_Amp = 0; + 92 1 else + 93 1 { + 94 2 if (Freq_CAL > Para_Limit) + 95 2 Da_Out_Amp = 5; + 96 2 else if (Freq_CAL < 500) + 97 2 Da_Out_Amp = 1; + 98 2 else + 99 2 Da_Out_Amp = (float)Freq_CAL * 4.0 / (Para_Limit - 500.0); + 100 2 } + 101 1 Da_Out_Dig = Da_Out_Amp * 51; + 102 1 switch (Seg_Show_Mode) + 103 1 { + 104 2 case 0: + 105 2 /* Ƶʽ */ + 106 2 Seg_Buf[0] = 11; // F + 107 2 Seg_Buf[1] = Seg_Buf[2] = 10; + 108 2 if (Freq_Error) + 109 2 { + 110 3 Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + 111 3 Seg_Buf[6] = Seg_Buf[7] = 16; // L + 112 3 } + 113 2 else + 114 2 { + 115 3 Seg_Buf[3] = (Freq_CAL / 10000 % 10 == 0) ? 10 + 116 3 : Freq_CAL / 10000 % 10; + C51 COMPILER V9.59.0.0 MAIN 04/29/2024 18:40:04 PAGE 3 + + 117 3 Seg_Buf[4] = (Seg_Buf[3] == 10 && Freq_CAL / 1000 % 10 == 0) ? 10 + 118 3 : Freq_CAL / 1000 % 10; + 119 3 Seg_Buf[5] = (Seg_Buf[4] == 10 && Freq_CAL / 100 % 10 == 0) ? 10 + 120 3 : Freq_CAL / 100 % 10; + 121 3 Seg_Buf[6] = (Seg_Buf[5] == 10 && Freq_CAL / 10 % 10 == 0) ? 10 + 122 3 : Freq_CAL / 10 % 10; + 123 3 Seg_Buf[7] = Freq_CAL % 10; + 124 3 } + 125 2 break; + 126 2 case 1: + 127 2 /* */ + 128 2 Seg_Buf[0] = 12; // P + 129 2 Seg_Buf[1] = Para_Mode + 1; + 130 2 Seg_Buf[2] = Seg_Buf[3] = 10; + 131 2 switch (Para_Mode) + 132 2 { + 133 3 case 0: + 134 3 /* ޲ */ + 135 3 Seg_Buf[4] = Para_Limit / 1000 % 10; + 136 3 Seg_Buf[5] = Para_Limit / 100 % 10; + 137 3 Seg_Buf[6] = Para_Limit / 10 % 10; + 138 3 Seg_Buf[7] = Para_Limit % 10; + 139 3 break; + 140 3 case 1: + 141 3 /* У׼ֵ */ + 142 3 if (Para_Right >= 0) + 143 3 { + 144 4 // + 145 4 Seg_Buf[4] = 10; + 146 4 if (Para_Right != 0) + 147 4 { + 148 5 Seg_Buf[5] = Para_Right / 100 % 10; + 149 5 Seg_Buf[6] = Para_Right / 10 % 10; + 150 5 Seg_Buf[7] = Para_Right % 10; + 151 5 } + 152 4 else + 153 4 { + 154 5 Seg_Buf[5] = Seg_Buf[6] = 10; + 155 5 Seg_Buf[7] = 0; + 156 5 } + 157 4 } + 158 3 else + 159 3 { + 160 4 // + 161 4 Seg_Buf[4] = 13; + 162 4 Seg_Buf[5] = Para_Temp / 100 % 10; + 163 4 Seg_Buf[6] = Para_Temp / 10 % 10; + 164 4 Seg_Buf[7] = Para_Temp % 10; + 165 4 } + 166 3 break; + 167 3 } + 168 2 break; + 169 2 case 2: + 170 2 /* ʱ */ + 171 2 Seg_Buf[0] = ucRtc[0] / 16; + 172 2 Seg_Buf[1] = ucRtc[0] % 16; + 173 2 Seg_Buf[2] = 13; //- + 174 2 Seg_Buf[3] = ucRtc[1] / 16; + 175 2 Seg_Buf[4] = ucRtc[1] % 16; + 176 2 Seg_Buf[5] = 13; //- + 177 2 Seg_Buf[6] = ucRtc[2] / 16; + 178 2 Seg_Buf[7] = ucRtc[2] % 16; + C51 COMPILER V9.59.0.0 MAIN 04/29/2024 18:40:04 PAGE 4 + + 179 2 break; + 180 2 case 3: + 181 2 /* Խ */ + 182 2 Seg_Buf[0] = 14; // H + 183 2 switch (Re_Show_Mode) + 184 2 { + 185 3 case 0: + 186 3 /* Ƶʻ */ + 187 3 Seg_Buf[1] = 11; // F + 188 3 Seg_Buf[2] = 10; + 189 3 Seg_Buf[3] = (Freq_MAX / 10000 % 10 == 0) ? 10 + 190 3 : Freq_MAX / 10000 % 10; + 191 3 Seg_Buf[4] = (Seg_Buf[3] == 10 && Freq_MAX / 1000 % 10 == 0) ? 10 + 192 3 : Freq_MAX / 1000 % 10; + 193 3 Seg_Buf[5] = (Seg_Buf[4] == 10 && Freq_MAX / 100 % 10 == 0) ? 10 + 194 3 : Freq_MAX / 100 % 10; + 195 3 Seg_Buf[6] = (Seg_Buf[5] == 10 && Freq_MAX / 10 % 10 == 0) ? 10 + 196 3 : Freq_MAX / 10 % 10; + 197 3 Seg_Buf[7] = Freq_MAX % 10; + 198 3 break; + 199 3 case 1: + 200 3 /* ʱ */ + 201 3 Seg_Buf[1] = 15; // A + 202 3 Seg_Buf[2] = MAX_Rtc[0] / 16; + 203 3 Seg_Buf[3] = MAX_Rtc[0] % 16; + 204 3 Seg_Buf[4] = MAX_Rtc[1] / 16; + 205 3 Seg_Buf[5] = MAX_Rtc[1] % 16; + 206 3 Seg_Buf[6] = MAX_Rtc[2] / 16; + 207 3 Seg_Buf[7] = MAX_Rtc[2] % 16; + 208 3 break; + 209 3 } + 210 2 } + 211 1 } + 212 void Led_Proc() + 213 { + 214 1 ucLed[0] = Led_Blink_Flag_Freq; + 215 1 ucLed[1] = Led_Blink_Flag_Wring; + 216 1 Da_Write(Da_Out_Dig); + 217 1 } + 218 void Timer0Init(void) // 100΢@12.000MHz + 219 { + 220 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 221 1 TMOD &= 0xF0; // öʱģʽ + 222 1 TMOD |= 0x05; + 223 1 TL0 = 0x00; // öʱֵ + 224 1 TH0 = 0x00; // öʱֵ + 225 1 TF0 = 0; // TF0־ + 226 1 TR0 = 1; // ʱ0ʼʱ + 227 1 } + 228 void Timer1Init(void) // 1@12.000MHz + 229 { + 230 1 AUXR &= 0xBF; // ʱʱ12Tģʽ + 231 1 TMOD &= 0x0F; // öʱģʽ + 232 1 TL1 = 0x18; // öʱֵ + 233 1 TH1 = 0xFC; // öʱֵ + 234 1 TF1 = 0; // TF1־ + 235 1 TR1 = 1; // ʱ1ʼʱ + 236 1 ET1 = 1; + 237 1 EA = 1; + 238 1 } + 239 void Timer1Isr(void) interrupt 3 + 240 { + C51 COMPILER V9.59.0.0 MAIN 04/29/2024 18:40:04 PAGE 5 + + 241 1 unsigned char i; + 242 1 unsigned int Para_Temp; + 243 1 Para_Temp = -Para_Right; + 244 1 if (++Time_1s == 1000) + 245 1 { + 246 2 Time_1s = 0; + 247 2 Freq = TH0 << 8 | TL0; + 248 2 if (Para_Right < 0 && Para_Temp > Freq) + 249 2 { + 250 3 Freq_Error = 1; + 251 3 Freq = 0; + 252 3 } + 253 2 else + 254 2 { + 255 3 Freq_Error = 0; + 256 3 Freq_CAL = Freq + Para_Right; + 257 3 } + 258 2 TH0 = TL0 = 0; + 259 2 } + 260 1 if (Seg_Show_Mode == 0) + 261 1 { + 262 2 if (++Time_200ms_Freq == 200) + 263 2 { + 264 3 Time_200ms_Freq = 0; + 265 3 Led_Blink_Flag_Freq ^= 1; + 266 3 } + 267 2 } + 268 1 else + 269 1 { + 270 2 Time_200ms_Freq = 0; + 271 2 Led_Blink_Flag_Freq = 0; + 272 2 } + 273 1 if (Freq_Error) + 274 1 { + 275 2 Time_200ms_Wring = 0; + 276 2 Led_Blink_Flag_Wring = 1; + 277 2 } + 278 1 else if (Freq > Para_Limit) + 279 1 { + 280 2 if (++Time_200ms_Wring == 200) + 281 2 { + 282 3 Time_200ms_Wring = 0; + 283 3 Led_Blink_Flag_Wring ^= 1; + 284 3 } + 285 2 } + 286 1 else + 287 1 { + 288 2 Time_200ms_Wring = 0; + 289 2 Led_Blink_Flag_Wring = 0; + 290 2 } + 291 1 Seg_Pos = (++Seg_Pos) % 8; + 292 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 293 1 for (i = 0; i < 8; i++) + 294 1 Led_Disp(i, ucLed[i]); + 295 1 } + 296 void main() + 297 { + 298 1 System_Init(); + 299 1 Timer0Init(); + 300 1 Timer1Init(); + 301 1 Set_Rtc(ucRtc); + 302 1 while (1) + C51 COMPILER V9.59.0.0 MAIN 04/29/2024 18:40:04 PAGE 6 + + 303 1 { + 304 2 Key_Proc(); + 305 2 Seg_Proc(); + 306 2 Led_Proc(); + 307 2 } + 308 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 1631 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 57 3 + IDATA SIZE = ---- ---- + BIT SIZE = 4 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/zuolan.m51 b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/zuolan.m51 new file mode 100644 index 0000000..58bf30d --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Listings/zuolan.m51 @@ -0,0 +1,993 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\STARTUP.obj, .\Objects\main.obj, .\Objects\Key.obj, .\Objects\Led.obj, .\Objects\S +>> eg.obj, .\Objects\init.obj, .\Objects\ds1302.obj, .\Objects\iic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) +>> RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\STARTUP.obj (?C_STARTUP) + .\Objects\main.obj (MAIN) + .\Objects\Key.obj (KEY) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\init.obj (INIT) + .\Objects\ds1302.obj (DS1302) + .\Objects\iic.obj (IIC) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?SIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + + +LINK MAP OF MODULE: .\Objects\zuolan (?C_STARTUP) + + + 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 0006H UNIT _DATA_GROUP_ + DATA 000EH 0002H UNIT ?DT?LED + 0010H 0010H *** GAP *** + BIT 0020H.0 0000H.4 UNIT ?BI?MAIN + 0020H.4 0000H.4 *** GAP *** + DATA 0021H 0039H UNIT ?DT?MAIN + IDATA 005AH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0015H UNIT ?PR?TIMER1INIT?MAIN + 0018H 0003H *** GAP *** + CODE 001BH 0003H ABSOLUTE + CODE 001EH 0445H UNIT ?C?LIB_CODE + CODE 0463H 03EBH UNIT ?PR?SEG_PROC?MAIN + CODE 084EH 0110H UNIT ?PR?KEY_PROC?MAIN + CODE 095EH 010EH UNIT ?PR?TIMER1ISR?MAIN + CODE 0A6CH 008CH UNIT ?C_C51STARTUP + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 2 + + + CODE 0AF8H 0051H UNIT ?PR?KEY_SCAN?KEY + CODE 0B49H 003FH UNIT ?PR?_SEG_DISP?SEG + CODE 0B88H 003EH UNIT ?PR?_SET_RTC?DS1302 + CODE 0BC6H 003DH UNIT ?PR?_READ_DS1302_BYTE?DS1302 + CODE 0C03H 003AH UNIT ?PR?_LED_DISP?LED + CODE 0C3DH 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 0C72H 0032H UNIT ?C_INITSEG + CODE 0CA4H 0031H UNIT ?PR?_READ_RTC?DS1302 + CODE 0CD5H 001DH UNIT ?PR?MAIN?MAIN + CODE 0CF2H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0D0FH 001CH UNIT ?PR?_WRITE_DS1302?DS1302 + CODE 0D2BH 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 0D45H 001AH UNIT ?PR?_DA_WRITE?IIC + CODE 0D5FH 0015H UNIT ?PR?I2CWAITACK?IIC + CODE 0D74H 0014H UNIT ?PR?_WRITE_DS1302_BYTE?DS1302 + CODE 0D88H 0013H UNIT ?PR?TIMER0INIT?MAIN + CODE 0D9BH 0011H UNIT ?PR?LED_PROC?MAIN + CODE 0DACH 0011H UNIT ?CO?SEG + CODE 0DBDH 000FH UNIT ?PR?I2CSTART?IIC + CODE 0DCCH 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (?C_STARTUP) + + +SEGMENT DATA_GROUP + +--> CALLED SEGMENT START LENGTH +----------------------------------------------------- +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0INIT?MAIN + +--> ?PR?TIMER1INIT?MAIN + +--> ?PR?_SET_RTC?DS1302 + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?_SET_RTC?DS1302 0008H 0003H + +--> ?PR?_WRITE_DS1302_BYTE?DS1302 + +?PR?_WRITE_DS1302_BYTE?DS1302 ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?KEY_PROC?MAIN ----- ----- + +--> ?PR?KEY_SCAN?KEY + +?PR?SEG_PROC?MAIN 0008H 0002H + +--> ?PR?_READ_RTC?DS1302 + +?PR?_READ_RTC?DS1302 000AH 0003H + +--> ?PR?_READ_DS1302_BYTE?DS1302 + + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 3 + + +?PR?_READ_DS1302_BYTE?DS1302 ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?LED_PROC?MAIN ----- ----- + +--> ?PR?_DA_WRITE?IIC + +?PR?_DA_WRITE?IIC ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CWAITACK?IIC ----- ----- + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +*** NEW ROOT *************************************************** + +?PR?TIMER1ISR?MAIN 000DH 0001H + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +?PR?_SEG_DISP?SEG ----- ----- + +--> ?CO?SEG + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (?C_STARTUP) + + VALUE TYPE NAME + ---------------------------------- + + ------- MODULE ?C_STARTUP + C:0A6CH SEGMENT ?C_C51STARTUP + I:005AH SEGMENT ?STACK + C:0000H PUBLIC ?C_STARTUP + D:00E0H SYMBOL ACC + D:00F0H SYMBOL B + D:0083H SYMBOL DPH + D:0082H SYMBOL DPL + N:0000H SYMBOL IBPSTACK + N:0100H SYMBOL IBPSTACKTOP + N:0080H SYMBOL IDATALEN + C:0A6FH SYMBOL IDATALOOP + N:0000H SYMBOL PBPSTACK + N:0100H SYMBOL PBPSTACKTOP + N:0000H SYMBOL PDATALEN + N:0000H SYMBOL PDATASTART + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 4 + + + N:0000H SYMBOL PPAGE + N:0000H SYMBOL PPAGEENABLE + D:00A0H SYMBOL PPAGE_SFR + D:0081H SYMBOL SP + C:0A6CH SYMBOL STARTUP1 + N:0000H SYMBOL XBPSTACK + N:0000H SYMBOL XBPSTACKTOP + N:0000H SYMBOL XDATALEN + N:0000H SYMBOL XDATASTART + C:0000H LINE# 126 + C:0A6CH LINE# 133 + C:0A6EH LINE# 134 + C:0A6FH LINE# 135 + C:0A70H LINE# 136 + C:0A72H LINE# 185 + C:0A75H LINE# 196 + ------- ENDMOD ?C_STARTUP + + ------- MODULE MAIN + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:0025H PUBLIC ucRtc + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:0028H PUBLIC Seg_Show_Mode + C:0D9BH PUBLIC Led_Proc + D:0029H PUBLIC Seg_Point + D:00A8H PUBLIC IE + D:0031H PUBLIC Freq + D:0033H PUBLIC Time_1s + C:0463H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:0035H PUBLIC Seg_Buf + C:084EH PUBLIC Key_Proc + D:003DH PUBLIC Re_Show_Mode + D:00D8H PUBLIC CCON + C:0CD5H PUBLIC main + B:0020H.0 PUBLIC Led_Blink_Flag_Wring + D:003EH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:003FH PUBLIC Da_Out_Dig + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + B:0020H.1 PUBLIC Led_Blink_Flag_Freq + D:0040H PUBLIC Da_Out_Amp + D:0044H PUBLIC Freq_CAL + D:008EH PUBLIC AUXR + B:0088H.5 PUBLIC TF0 + B:00A8H.3 PUBLIC ET1 + C:0D88H PUBLIC Timer0Init + B:0088H.7 PUBLIC TF1 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 5 + + + C:0003H PUBLIC Timer1Init + D:008CH PUBLIC TH0 + D:008DH PUBLIC TH1 + D:0046H PUBLIC Time_200ms_Wring + D:008AH PUBLIC TL0 + D:008BH PUBLIC TL1 + D:0047H PUBLIC Time_200ms_Freq + B:0088H.4 PUBLIC TR0 + D:0048H PUBLIC Freq_MAX + B:0088H.6 PUBLIC TR1 + C:095EH PUBLIC Timer1Isr + D:004AH PUBLIC Para_Right + D:004CH PUBLIC Para_Limit + D:004EH PUBLIC Para_Mode + D:004FH PUBLIC ucLed + D:0057H PUBLIC MAX_Rtc + B:0020H.2 PUBLIC Freq_Wring + D:00D0H PUBLIC PSW + B:0020H.3 PUBLIC Freq_Error + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Old + D:0023H SYMBOL Key_Down + D:0024H SYMBOL Key_Up + ------- ENDDO + C:084EH LINE# 32 + C:084EH LINE# 33 + C:084EH LINE# 35 + C:0860H LINE# 37 + C:0865H LINE# 38 + C:086EH LINE# 39 + C:0874H LINE# 40 + C:0877H LINE# 41 + C:0880H LINE# 42 + C:0880H LINE# 43 + C:0888H LINE# 44 + C:088DH LINE# 45 + C:088DH LINE# 46 + C:089DH LINE# 47 + C:089DH LINE# 48 + C:089DH LINE# 50 + C:08A3H LINE# 51 + C:08ABH LINE# 52 + C:08B6H LINE# 53 + C:08B6H LINE# 54 + C:08B6H LINE# 56 + C:08BFH LINE# 57 + C:08DEH LINE# 58 + C:08E4H LINE# 59 + C:0902H LINE# 60 + C:0903H LINE# 61 + C:0903H LINE# 63 + C:090CH LINE# 64 + C:092AH LINE# 65 + C:0930H LINE# 66 + C:094EH LINE# 67 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 6 + + + C:094FH LINE# 68 + C:094FH LINE# 69 + C:094FH LINE# 70 + C:094FH LINE# 71 + C:094FH LINE# 73 + C:0955H LINE# 74 + C:095DH LINE# 75 + C:095DH LINE# 76 + C:095DH LINE# 77 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:0008H SYMBOL Para_Temp + ------- ENDDO + C:0463H LINE# 78 + C:0463H LINE# 79 + C:0463H LINE# 81 + C:046EH LINE# 82 + C:0480H LINE# 84 + C:0488H LINE# 85 + C:0493H LINE# 86 + C:0493H LINE# 87 + C:0499H LINE# 88 + C:04A2H LINE# 89 + C:04A2H LINE# 90 + C:04A5H LINE# 91 + C:04B0H LINE# 93 + C:04B0H LINE# 94 + C:04BBH LINE# 95 + C:04C8H LINE# 96 + C:04D3H LINE# 97 + C:04E0H LINE# 99 + C:0527H LINE# 100 + C:0527H LINE# 101 + C:053EH LINE# 102 + C:0559H LINE# 103 + C:0559H LINE# 104 + C:0559H LINE# 106 + C:055CH LINE# 107 + C:0562H LINE# 108 + C:0565H LINE# 109 + C:0565H LINE# 110 + C:056EH LINE# 111 + C:0574H LINE# 112 + C:0575H LINE# 114 + C:0575H LINE# 115 + C:0593H LINE# 117 + C:05C8H LINE# 119 + C:05FCH LINE# 121 + C:0630H LINE# 123 + C:0634H LINE# 124 + C:0634H LINE# 125 + C:0637H LINE# 126 + C:0637H LINE# 128 + C:063AH LINE# 129 + C:063FH LINE# 130 + C:0645H LINE# 131 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 7 + + + C:0650H LINE# 132 + C:0650H LINE# 133 + C:0650H LINE# 135 + C:0664H LINE# 136 + C:0678H LINE# 137 + C:068CH LINE# 138 + C:0690H LINE# 139 + C:0693H LINE# 140 + C:0693H LINE# 142 + C:069CH LINE# 143 + C:069CH LINE# 145 + C:069FH LINE# 146 + C:06A5H LINE# 147 + C:06A5H LINE# 148 + C:06B9H LINE# 149 + C:06CDH LINE# 150 + C:06DAH LINE# 151 + C:06DBH LINE# 153 + C:06DBH LINE# 154 + C:06E1H LINE# 155 + C:06E4H LINE# 156 + C:06E4H LINE# 157 + C:06E5H LINE# 159 + C:06E5H LINE# 161 + C:06E8H LINE# 162 + C:06FCH LINE# 163 + C:0710H LINE# 164 + C:0714H LINE# 165 + C:0714H LINE# 166 + C:0717H LINE# 167 + C:0717H LINE# 168 + C:0717H LINE# 169 + C:0717H LINE# 171 + C:071EH LINE# 172 + C:0724H LINE# 173 + C:0727H LINE# 174 + C:072EH LINE# 175 + C:0734H LINE# 176 + C:0737H LINE# 177 + C:073EH LINE# 178 + C:0740H LINE# 179 + C:0743H LINE# 180 + C:0743H LINE# 182 + C:0746H LINE# 183 + C:0754H LINE# 184 + C:0754H LINE# 185 + C:0754H LINE# 187 + C:0757H LINE# 188 + C:075AH LINE# 189 + C:0778H LINE# 191 + C:07ADH LINE# 193 + C:07E1H LINE# 195 + C:0815H LINE# 197 + C:0822H LINE# 198 + C:0823H LINE# 199 + C:0823H LINE# 201 + C:0826H LINE# 202 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 8 + + + C:082DH LINE# 203 + C:0833H LINE# 204 + C:083AH LINE# 205 + C:0840H LINE# 206 + C:0847H LINE# 207 + C:084DH LINE# 208 + C:084DH LINE# 209 + C:084DH LINE# 210 + C:084DH LINE# 211 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0D9BH LINE# 212 + C:0D9BH LINE# 213 + C:0D9BH LINE# 214 + C:0DA1H LINE# 215 + C:0DA7H LINE# 216 + ------- ENDPROC LED_PROC + ------- PROC TIMER0INIT + C:0D88H LINE# 218 + C:0D88H LINE# 219 + C:0D88H LINE# 220 + C:0D8BH LINE# 221 + C:0D8EH LINE# 222 + C:0D91H LINE# 223 + C:0D94H LINE# 224 + C:0D96H LINE# 225 + C:0D98H LINE# 226 + C:0D9AH LINE# 227 + ------- ENDPROC TIMER0INIT + ------- PROC TIMER1INIT + C:0003H LINE# 228 + C:0003H LINE# 229 + C:0003H LINE# 230 + C:0006H LINE# 231 + C:0009H LINE# 232 + C:000CH LINE# 233 + C:000FH LINE# 234 + C:0011H LINE# 235 + C:0013H LINE# 236 + C:0015H LINE# 237 + C:0017H LINE# 238 + ------- ENDPROC TIMER1INIT + ------- PROC TIMER1ISR + ------- DO + D:000DH SYMBOL i + D:0004H SYMBOL Para_Temp + ------- ENDDO + C:095EH LINE# 239 + C:097BH LINE# 243 + C:0986H LINE# 244 + C:0998H LINE# 245 + C:0998H LINE# 246 + C:099CH LINE# 247 + C:09A6H LINE# 248 + C:09B7H LINE# 249 + C:09B7H LINE# 250 + C:09B9H LINE# 251 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 9 + + + C:09BFH LINE# 252 + C:09C1H LINE# 254 + C:09C1H LINE# 255 + C:09C3H LINE# 256 + C:09CFH LINE# 257 + C:09CFH LINE# 258 + C:09D5H LINE# 259 + C:09D5H LINE# 260 + C:09D9H LINE# 261 + C:09D9H LINE# 262 + C:09E1H LINE# 263 + C:09E1H LINE# 264 + C:09E3H LINE# 265 + C:09E8H LINE# 266 + C:09E8H LINE# 267 + C:09EAH LINE# 269 + C:09EAH LINE# 270 + C:09EDH LINE# 271 + C:09EFH LINE# 272 + C:09EFH LINE# 273 + C:09F2H LINE# 274 + C:09F2H LINE# 275 + C:09F5H LINE# 276 + C:09F7H LINE# 277 + C:09F9H LINE# 278 + C:0A04H LINE# 279 + C:0A04H LINE# 280 + C:0A0CH LINE# 281 + C:0A0CH LINE# 282 + C:0A0EH LINE# 283 + C:0A13H LINE# 284 + C:0A13H LINE# 285 + C:0A15H LINE# 287 + C:0A15H LINE# 288 + C:0A18H LINE# 289 + C:0A1AH LINE# 290 + C:0A1AH LINE# 291 + C:0A22H LINE# 292 + C:0A33H LINE# 293 + C:0A41H LINE# 294 + C:0A51H LINE# 295 + ------- ENDPROC TIMER1ISR + ------- PROC MAIN + C:0CD5H LINE# 296 + C:0CD5H LINE# 297 + C:0CD5H LINE# 298 + C:0CD8H LINE# 299 + C:0CDBH LINE# 300 + C:0CDEH LINE# 301 + C:0CE7H LINE# 302 + C:0CE7H LINE# 303 + C:0CE7H LINE# 304 + C:0CEAH LINE# 305 + C:0CEDH LINE# 306 + C:0CF0H LINE# 307 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 10 + + + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0AF8H PUBLIC Key_Scan + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + D:00D0H PUBLIC PSW + ------- PROC KEY_SCAN + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0AF8H LINE# 3 + C:0AF8H LINE# 4 + C:0AF8H LINE# 5 + C:0AFAH LINE# 6 + C:0B00H LINE# 7 + C:0B05H LINE# 8 + C:0B0AH LINE# 9 + C:0B0FH LINE# 10 + C:0B14H LINE# 11 + C:0B1AH LINE# 12 + C:0B1FH LINE# 13 + C:0B24H LINE# 14 + C:0B29H LINE# 15 + C:0B2EH LINE# 16 + C:0B34H LINE# 17 + C:0B39H LINE# 18 + C:0B3EH LINE# 19 + C:0B43H LINE# 20 + C:0B48H LINE# 21 + C:0B48H LINE# 22 + ------- ENDPROC KEY_SCAN + ------- ENDMOD KEY + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 11 + + + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0C03H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:000EH SYMBOL temp + D:000FH SYMBOL temp_old + ------- ENDDO + C:0C03H LINE# 2 + C:0C03H LINE# 3 + C:0C03H LINE# 6 + C:0C06H LINE# 7 + C:0C15H LINE# 9 + C:0C23H LINE# 10 + C:0C29H LINE# 11 + C:0C29H LINE# 12 + C:0C2EH LINE# 13 + C:0C36H LINE# 14 + C:0C39H LINE# 15 + C:0C3CH LINE# 16 + C:0C3CH LINE# 17 + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0B49H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + C:0DACH PUBLIC Seg_dula + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 12 + + + C:0B49H LINE# 6 + C:0B49H LINE# 7 + C:0B49H LINE# 8 + C:0B4CH LINE# 9 + C:0B54H LINE# 10 + C:0B57H LINE# 12 + C:0B64H LINE# 13 + C:0B6CH LINE# 14 + C:0B6FH LINE# 16 + C:0B76H LINE# 17 + C:0B79H LINE# 18 + C:0B7CH LINE# 19 + C:0B84H LINE# 20 + C:0B87H LINE# 21 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0CF2H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0CF2H LINE# 2 + C:0CF2H LINE# 3 + C:0CF2H LINE# 4 + C:0CF5H LINE# 5 + C:0CFDH LINE# 6 + C:0D00H LINE# 8 + C:0D03H LINE# 9 + C:0D0BH LINE# 10 + C:0D0EH LINE# 11 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE DS1302 + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 13 + + + C:0CA4H PUBLIC _Read_Rtc + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0B88H PUBLIC _Set_Rtc + C:0BC6H PUBLIC _Read_Ds1302_Byte + B:00A0H.3 PUBLIC SDA + B:0090H.7 PUBLIC SCK + C:0D74H PUBLIC _Write_Ds1302_Byte + C:0D0FH PUBLIC _Write_Ds1302 + B:0090H.3 PUBLIC RST + D:00D0H PUBLIC PSW + ------- PROC _WRITE_DS1302 + D:0007H SYMBOL temp + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0D0FH LINE# 12 + C:0D0FH LINE# 13 + C:0D0FH LINE# 15 + C:0D1BH LINE# 16 + C:0D1BH LINE# 17 + C:0D1DH LINE# 18 + C:0D21H LINE# 19 + C:0D25H LINE# 20 + C:0D27H LINE# 21 + C:0D2AH LINE# 22 + ------- ENDPROC _WRITE_DS1302 + ------- PROC _WRITE_DS1302_BYTE + D:0007H SYMBOL address + D:0005H SYMBOL dat + C:0D74H LINE# 25 + C:0D74H LINE# 26 + C:0D74H LINE# 27 + C:0D77H LINE# 28 + C:0D7AH LINE# 29 + C:0D7DH LINE# 30 + C:0D80H LINE# 31 + C:0D85H LINE# 32 + C:0D87H LINE# 33 + ------- ENDPROC _WRITE_DS1302_BYTE + ------- PROC _READ_DS1302_BYTE + D:0007H SYMBOL address + ------- DO + D:0007H SYMBOL i + D:0005H SYMBOL temp + ------- ENDDO + C:0BC6H LINE# 36 + C:0BC6H LINE# 37 + C:0BC6H LINE# 38 + C:0BC8H LINE# 39 + C:0BCBH LINE# 40 + C:0BCEH LINE# 41 + C:0BD1H LINE# 42 + C:0BD4H LINE# 43 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 14 + + + C:0BE0H LINE# 44 + C:0BE0H LINE# 45 + C:0BE2H LINE# 46 + C:0BE6H LINE# 47 + C:0BE9H LINE# 48 + C:0BECH LINE# 49 + C:0BEEH LINE# 50 + C:0BF1H LINE# 51 + C:0BF4H LINE# 52 + C:0BF7H LINE# 53 + C:0BFAH LINE# 54 + C:0BFDH LINE# 55 + C:0C00H LINE# 56 + C:0C02H LINE# 57 + ------- ENDPROC _READ_DS1302_BYTE + ------- PROC _SET_RTC + D:0008H SYMBOL Rtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0B88H LINE# 59 + C:0B8EH LINE# 60 + C:0B8EH LINE# 62 + C:0B95H LINE# 63 + C:0BA1H LINE# 64 + C:0BBFH LINE# 65 + ------- ENDPROC _SET_RTC + ------- PROC _READ_RTC + D:000AH SYMBOL Rtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0CA4H LINE# 67 + C:0CAAH LINE# 68 + C:0CAAH LINE# 70 + C:0CB6H LINE# 71 + C:0CD4H LINE# 72 + ------- ENDPROC _READ_RTC + ------- ENDMOD DS1302 + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0D2FH SYMBOL _I2C_Delay + C:0D45H PUBLIC _Da_Write + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 15 + + + B:00A0H.1 PUBLIC sda + B:00A0H.0 PUBLIC scl + C:0DBDH PUBLIC I2CStart + C:0C3DH PUBLIC _I2CSendByte + C:0D62H PUBLIC I2CWaitAck + C:0DCCH PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:0D2BH SYMBOL L?0016 + ------- PROC L?0015 + ------- ENDPROC L?0015 + C:0D2BH SYMBOL L?0016 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:0D2FH LINE# 12 + C:0D2FH LINE# 13 + C:0D2FH LINE# 15 + C:0D2FH LINE# 16 + C:0D34H LINE# 17 + C:0D39H LINE# 18 + C:0D3EH LINE# 19 + C:0D3EH LINE# 20 + C:0D44H LINE# 21 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:0DBDH LINE# 24 + C:0DBDH LINE# 25 + C:0DBDH LINE# 26 + C:0DBFH LINE# 27 + C:0DBFH LINE# 28 + C:0DC2H LINE# 29 + C:0DC4H LINE# 30 + C:0DC9H LINE# 31 + C:0DCBH LINE# 32 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:0DCCH LINE# 35 + C:0DCCH LINE# 36 + C:0DCCH LINE# 37 + C:0DCEH LINE# 38 + C:0DCEH LINE# 39 + C:0DD1H LINE# 40 + C:0DD3H LINE# 41 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0C3DH LINE# 45 + C:0C3FH LINE# 46 + C:0C3FH LINE# 49 + C:0C4BH LINE# 50 + C:0C4DH LINE# 51 + C:0C52H LINE# 52 + C:0C56H LINE# 53 + C:0C58H LINE# 54 + C:0C5AH LINE# 55 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 16 + + + C:0C5AH LINE# 56 + C:0C5CH LINE# 57 + C:0C5CH LINE# 58 + C:0C61H LINE# 59 + C:0C63H LINE# 60 + C:0C67H LINE# 61 + C:0C6CH LINE# 62 + C:0C6FH LINE# 64 + C:0C71H LINE# 65 + ------- ENDPROC _I2CSENDBYTE + ------- PROC L?0017 + ------- ENDPROC L?0017 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:0D62H LINE# 68 + C:0D62H LINE# 69 + C:0D62H LINE# 72 + C:0D62H LINE# 73 + C:0D65H LINE# 74 + C:0D6AH LINE# 75 + C:0D6CH LINE# 76 + C:0D71H LINE# 78 + C:0D73H LINE# 79 + ------- ENDPROC I2CWAITACK + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:0D45H LINE# 81 + C:0D47H LINE# 82 + C:0D47H LINE# 83 + C:0D4AH LINE# 84 + C:0D4CH LINE# 85 + C:0D4FH LINE# 86 + C:0D51H LINE# 87 + C:0D54H LINE# 88 + C:0D59H LINE# 89 + C:0D5CH LINE# 90 + ------- ENDPROC _DA_WRITE + ------- ENDMOD IIC + + ------- MODULE ?C?FPADD + C:0025H PUBLIC ?C?FPADD + C:0021H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + + ------- MODULE ?C?FPMUL + C:0116H PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FPDIV + C:021FH PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FCAST + C:02C6H PUBLIC ?C?FCASTC + C:02C1H PUBLIC ?C?FCASTI + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/29/2024 18:40:05 PAGE 17 + + + C:02BCH PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:02FAH PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?CLDOPTR + C:037BH PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTOPTR + C:03A8H PUBLIC ?C?CSTOPTR + ------- ENDMOD ?C?CSTOPTR + + ------- MODULE ?C?UIDIV + C:03CAH PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?SIDIV + C:041FH PUBLIC ?C?SIDIV + ------- ENDMOD ?C?SIDIV + + ------- MODULE ?C?LNEG + C:0455H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +Program Size: data=74.4 xdata=0 code=3541 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/Key.obj b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/Key.obj new file mode 100644 index 0000000..785a578 Binary files /dev/null and b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/Key.obj differ diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/Led.obj b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/Led.obj new file mode 100644 index 0000000..798c138 Binary files /dev/null and b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/Led.obj differ diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/STARTUP.obj b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/STARTUP.obj new file mode 100644 index 0000000..71edec6 Binary files /dev/null and b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/STARTUP.obj differ diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/Seg.obj b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/Seg.obj new file mode 100644 index 0000000..3df7e28 Binary files /dev/null and b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/Seg.obj differ diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/ds1302.obj b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/ds1302.obj new file mode 100644 index 0000000..f8ed040 Binary files /dev/null and b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/ds1302.obj differ diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/iic.obj b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/iic.obj new file mode 100644 index 0000000..038154b Binary files /dev/null and b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/iic.obj differ diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/init.obj b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/init.obj new file mode 100644 index 0000000..6a4d6e2 Binary files /dev/null and b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/init.obj differ diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/main.obj b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/main.obj new file mode 100644 index 0000000..fc90b8d Binary files /dev/null and b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/main.obj differ diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan new file mode 100644 index 0000000..22963c3 Binary files /dev/null and b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan differ diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan.build_log.htm b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..726180e --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan.build_log.htm @@ -0,0 +1,43 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: STCMON51.DLL V1, 0, 10, 0 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+F:\competition\ű\blue-bridge-cup-learning\Ŀ\\ʮʡ__ʡһ\zuolan.uvproj +Project File Date: 04/13/2024 + +

Output:

+Rebuild target 'zuolan' +assembling STARTUP.A51... +compiling main.c... +compiling Key.c... +compiling Led.c... +compiling Seg.c... +compiling init.c... +compiling ds1302.c... +compiling iic.c... +linking... +Program Size: data=74.4 xdata=0 code=3541 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan.hex b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan.hex new file mode 100644 index 0000000..ca8a966 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan.hex @@ -0,0 +1,255 @@ +:03000000020A6C85 +:0C0A6C00787FE4F6D8FD758159020AB3CA +:100C7200084F000000000000000008350A0A0A0AB6 +:100C82000A0A0A0A082900000000000000000325E1 +:0B0C9200000000024C07D0024A0000E6 +:10084E00AE33AF347C007D0A1203CAED4C60030256 +:10085E00095D120AF88F21E5226521FF5521F52346 +:10086E00E521F45FF524852122AF237E00EF640499 +:10087E00700D0528E5285403F528E4F53DF54EE501 +:10088E002824FD700302094F2402600302095DEF64 +:10089E0064054E7008054EE54E5401F54EE54E14B6 +:1008AE00605304600302095DAF237E00EF6408709D +:1008BE001FE54DB4280BE54CB423067C037DE88080 +:1008CE000AE54D24E8FDE54C3403FC8C4C8D4D229D +:1008DE00EF64094E7079E54DB4E80BE54CB40306B0 +:1008EE007E237F28800AE54D2418FFE54C34FCFE5C +:1008FE008E4C8F4D22AF237E00EF6408701EE54BA9 +:10090E00B4840BE54AB403067CFC7D7C8009E54B80 +:10091E002464FDE4354AFC8C4A8D4B22EF64094E6B +:10092E00702DE54BB47C0BE54AB4FC067E037F8448 +:10093E00800AE54B249CFFE54A34FFFE8E4A8F4B1E +:0F094E0022E52364057008053DE53D5401F53DA4 +:01095D002277 +:10046300C3E4954BF509E4954AF508AE33AF347C04 +:10047300007D141203CAED4C600302084DFB7A00A1 +:100483007925120CA4D3E5459549E5449548400FD9 +:100493008544488545497B007A007957120CA4307E +:1004A300030BE4F543F542F541F5408077D3E54589 +:1004B300954DE544954C400DE4F543F5427541A057 +:1004C300754040805FC3E54594F4E5449401500DC5 +:1004D300E4F543F54275418075403F8047AC44AD38 +:1004E30045E41202C1E4FBFA79807840120116C098 +:1004F30004C005C006C007AC4CAD4DE41202C1E414 +:10050300FBFA79FA78C3120025A804A905AA06AB59 +:1005130007D007D006D005D00412021F8F438E42A6 +:100523008D418C40E4FFFE7D4C7C42AB43AA42A943 +:1005330041A8401201161202FA8F3FE528147003F6 +:1005430002063714700302071714700302074324CB +:1005530003600302084D75350B75370A75360A308B +:100563000310753A0A75390A75380A753C10753BDC +:100573001022AE44AF457C277D101203CA7C007D58 +:100583000A1203CAED4C70047F0A8002AF058F384C +:10059300EF640A701AAE44AF457C037DE81203CAC8 +:1005A3007C007D0A1203CAED4C70047F0A8014AEEE +:1005B30044AF457C037DE81203CA7C007D0A120325 +:1005C300CAAF058F39EF640A7019AE44AF45FC7D9D +:1005D300641203CA7C007D0A1203CAED4C70047FC7 +:1005E3000A8014AE44AF457C007D641203CA7C00CC +:1005F3007D0A1203CAAF058F3AEF640A7019AE443D +:10060300AF45FC7D0A1203CA7C007D0A1203CAEDC2 +:100613004C70047F0A8014AE44AF457C007D0A12FF +:1006230003CA7C007D0A1203CAAF058F3BAE44AFF9 +:100633004502081975350CE54E04F53675380A750B +:10064300370AE54E14604904600302084DAE4CAF0F +:100653004D7C037DE81203CA7C007D0A1203CA8D18 +:1006630039AE4CAF4D7C007D641203CA7C007D0A19 +:100673001203CA8D3AAE4CAF4D7C007D0A1203CAF9 +:100683007C007D0A1203CA8D3BAE4CAF4D020819A4 +:10069300C3E54A64809480404975390AE54B454A6D +:1006A3006036AE4AAF4B7C007D6412041F7C007D34 +:1006B3000A12041F8D3AAE4AAF4B7C007D0A120426 +:1006C3001F7C007D0A12041F8D3BAE4AAF4B7C009A +:1006D3007D0A12041F8D3C22753B0A753A0AE4F524 +:1006E3003C2275390DAE08AF097C007D641203CA44 +:1006F3007C007D0A1203CA8D3AAE08AF097C007DE7 +:100703000A1203CA7C007D0A1203CA8D3BAE08AFEE +:1007130009020819E525C4540FF535E525540FF5ED +:100723003675370DE526C4540FF538E526540FF515 +:1007330039753A0DE527C4540FF53BE527020849FF +:1007430075350EE53D1470030208230460030208A7 +:100753004D75360B75370AAE48AF497C277D1012AD +:1007630003CA7C007D0A1203CAED4C70047F0A8021 +:1007730002AF058F38EF640A701AAE48AF497C03A5 +:100783007DE81203CA7C007D0A1203CAED4C700493 +:100793007F0A8014AE48AF497C037DE81203CA7C0C +:1007A300007D0A1203CAAF058F39EF640A7019AED0 +:1007B30048AF49FC7D641203CA7C007D0A1203CA58 +:1007C300ED4C70047F0A8014AE48AF497C007D6411 +:1007D3001203CA7C007D0A1203CAAF058F3AEF6485 +:1007E3000A7019AE48AF49FC7D0A1203CA7C007D2A +:1007F3000A1203CAED4C70047F0A8014AE48AF4955 +:100803007C007D0A1203CA7C007D0A1203CAAF056D +:100813008F3BAE48AF497C007D0A1203CA8D3C2250 +:1008230075360FE557C4540FF537E557540FF538B0 +:10083300E558C4540FF539E558540FF53AE559C452 +:0A084300540FF53BE559540FF53C46 +:01084D002288 +:100D9B00A201E433F54FA200E433F550AF3F020D4F +:010DAB004502 +:100D8800538E7F5389F0438905E4F58AF58CC28D2B +:030D9800D28C22D8 +:10000300538EBF53890F758B18758DFCC28FD28E9B +:05001300D2ABD2AF22C8 +:03001B0002095E79 +:10095E00C0E0C0F0C083C082C0D075D000C000C05F +:0D096E0001C002C003C004C005C006C007E0 +:10097B00C3E4954BFFE4954AAD07FC0534E53470B1 +:10098B0002053364E87004E5336403703DF533F519 +:10099B0034AF8CEFAB8AF531EBF532C3E54A6480AB +:1009AB0094805012ED9532EC9531400AD20375319B +:1009BB0000753200800EC203E532254BF545E5315B +:1009CB00354AF544758A00758C00E528701105478A +:1009DB00E54764C8700EF547A201B3920180057517 +:1009EB004700C201300307754600D2008021D3E5D2 +:1009FB0032954DE531954C40110546E54664C8707E +:100A0B000EF546A200B392008005754600C20005A4 +:100A1B003EE53E5407F53E2435F8E6FD7429253EA8 +:100A2B00F8E6FBAF3E120B49750D00C3E50D9408BC +:100A3B00748094805010744F250DF8E6FDAF0D12A5 +:060A4B000C03050D80E51F +:100A5100D007D006D005D004D003D002D001D000F9 +:0B0A6100D0D0D082D083D0F0D0E032A3 +:100CD500120CF2120D881200037B007A007925129E +:0D0CE5000B8812084E120463120D9B80F55F +:100AF800E4FFC2C4D2C2D2B520B0027F0720B1023F +:100B08007F0620B2027F0520B3027F04D2C4C2C28E +:100B1800D2B520B0027F0B20B1027F0A20B2027F3B +:100B28000920B3027F08D2C4D2C2C2B520B0027F66 +:100B38000F20B1027F0E20B2027F0D20B3027F0C7E +:010B4800228A +:060C9D00010E00010FFF33 +:100C0300ED600FA8077401088002C333D8FC420EBD +:100C1300800EA8077401088002C333D8FCF4520E77 +:100C2300E50E650F6013E50EF4F580E5A0541F444F +:090C330080F5A053A01F850E0FEF +:010C3C002295 +:100DAC00C0F9A4B0999282F88090FF8E8CBF89888C +:010DBC00C76F +:100B49007580FFE5A0541F44E0F5A053A01FA80736 +:100B59007401088002C333D8FCF580E5A0541F4412 +:100B6900C0F5A053A01FED900DAC93F580EB600389 +:0F0B790053807FE5A0541F44E0F5A053A01F2236 +:100CF2007580FFE5A0541F4480F5A053A01FE4F5C2 +:0D0D020080E5A0541F44A0F5A053A01F22BF +:100D0F00E4FEEEC3940874809480500FC297EF13E3 +:0B0D1F0092A3EFC313FFD2970E80E7F2 +:010D2A0022A6 +:100D7400C29300C29700D29300120D0FAF05120D5B +:040D84000FC29322E5 +:100BC600E4FDC29300C29700D29300120D0FE4FF1A +:100BD600EFC39408748094805011C297EDC313FD3F +:100BE60030A303430580D2970F80E5C29300C297D6 +:0C0BF60000D29700C2A300D2A300AF05FC +:010C020022CF +:060B88008B088A09890AAE +:100B8E00E4FD7F8E120D74E4FCECC3940374809428 +:100B9E0080501EEC25E0FFC374849FFFAB08AA09AA +:100BAE00A90A8C8275830012037BFD120D740C80D2 +:080BBE00D87D807F8E020D74CA +:060CA4008B0A8A0B890C8B +:100CAA00E4FCECC3940374809480501EEC25E0FFAE +:100CBA00C374859FFF120BC6AB0AAA0BA90C8C82C0 +:0A0CCA00758300EF1203A80C80D818 +:010CD40022FD +:040D2B00D2A07F0AC9 +:100D2F00000000000000000000000000000000AE06 +:060D3F00071FEE70EB221D +:0F0DBD00D2A1120D2BC2A17F0A120D2FC2A022AC +:0C0DCC00C2A1120D2BD2A17F0A020D2F34 +:020C3D00AD0701 +:100C3F00E4FCECC39408748094805024C2A07F0A13 +:100C4F00120D2FED30E704D2A18002C2A17F0A124C +:100C5F000D2FD2A0ED25E0FD7F0A120D2F0C80D2B3 +:020C6F00C2A021 +:010C71002260 +:030D5F00120C3D36 +:100D6200120D2BA2A1E433FDC2A07F0A120D2FAFF8 +:010D7200057B +:010D7300225D +:100D4500AB07120DBD7F90120D5F7F41120D5FAF96 +:0A0D550003120C3D120D62020DCCDA +:10001E00020366E86480F8E933E83360110460F0A7 +:10002E00ED33EC337009E8FCE9FDEAFEEBFF220448 +:10003E0060DED3EB9FEA9EE99DE8C2E78CF0C2F743 +:10004E0095F0400CE8CCF8E9CDF9EACEFAEBCFFB0F +:10005E0012033185D0F05804700320D5B3E8047034 +:10006E00075002B2D502037092D5EC0460F7E4CCCF +:10007E00C0E0C398F8603B94186008400DD0E0FBD8 +:10008E00020348E4FBFAC9FC8028E830E406E4C920 +:10009E00FBE4CAFCE830E305E4C9CACBFCE854072C +:1000AE006010F8C3E913F9EA13FAEB13FBEC13FC37 +:1000BE00D8F130F52FC3E49CFCEF9BFFEE9AFEEDDA +:1000CE0099FDD0E0FBEF4E4D4C701222DB03020384 +:1000DE006DEC2CFCEF33FFEE33FEED33FDED30E730 +:1000EE00EB020348EF2BFFEE3AFEED39FDD0E0FBBD +:1000FE0050130BBB0003020370ED13FDEE13FEEF66 +:08010E0013FFEC13FC0203488F +:10011600EC4D6011E8497017ED33EC3304600DE4E3 +:10012600FCFFFEFD22E933E8330470F80203661291 +:10013600033158046009E4CC248150062850090292 +:10014600037028400302036DC0E0EB4A7044B98097 +:1001560006D0E0FB02035CEF4E701CBD8008EBFF8F +:10016600EAFEE9FD80EBE98DF0A4FEE5F00201FF71 +:10017600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89C4 +:10018600F0A42EFFE435F0CD89F0A42DFEE435F081 +:100196008067EF4E7005BD80D780C3EF8BF0A4ACAF +:1001A600F0EE8BF0A42CFCE435F0F8EF8AF0A42CEA +:1001B600E5F038FCE433CB8DF0A42CFCE5F03BF8FD +:1001C600EE8AF0A42CFCE5F038F8E433CF89F0A4ED +:1001D6002CFCE5F038CF3400CE89F0A42FFFE5F0F3 +:1001E6003EFEE433C98DF0A42EFEE5F039CD8AF04B +:1001F600A42FFFE5F03EFEE43DFD33D0E0FB5007C3 +:100206000BBB000F020370EC2CFCEF33FFEE33FE4A +:06021600ED33FD02034878 +:10021C00020370EC5D046005E85904700302036688 +:10022C00120331580460F6EC4860F2EC7004FDFEE9 +:10023C00FF22C860DB2481C85009C39860025006B5 +:10024C0002036D9850CAF582E9294B4A7005AB82BE +:10025C0002035C75F0007C1A7880C3EF9BEE9AED7C +:10026C0099400DC3EF9BFFEE9AFEED99FDE842F02D +:10027C00DC23ACF0D0E0FFD0E0FED0E0FDAB822080 +:10028C00E7101BEB60BAEC2CFCEF33FFEE33FEED0A +:10029C0033FD020348E803F830E705C0F075F000C1 +:1002AC00EF2FFFEE33FEED33FD40B830E7C280AAEE +:1002BC0075F020800E75F010800575F0087D007EBD +:1002CC00007F003392D530D503120455EC33401027 +:1002DC00EF33FFEE33FEED33FDEC33FCD5F0ED22C6 +:0E02EC00E5F0247EA2D513CC92E7CDCEFF2202 +:1002FA00EDD2E7CD33EC3392D524814006E4FFFEFC +:10030A00FDFC22FCE4CFCECDCC24E0501174FF805A +:10031A00EDC3CC13CCCD13CDCE13CECF13CF0470F7 +:07032A00F030D5DE0204559E +:10033100E9D2E7C933E833F892D5EDD2E7CD33EC12 +:0703410033FC5002B2D5228B +:10034800EC30E7100FBF000C0EBE00080DBD000416 +:100358000BEB6014A2D5EB13FCED92E7FD2274FFC2 +:10036800FCFDFEFF22E480F8A2D574FF13FC7D801B +:03037800E480EF2F +:100A7800020CD5E493A3F8E493A34003F68001F2B3 +:100A880008DFF48029E493A3F85407240CC8C3337F +:100A9800C4540F4420C8834004F456800146F6DF4E +:100AA800E4800B0102040810204080900C72E47E60 +:100AB800019360BCA3FF543F30E509541FFEE49343 +:100AC800A360010ECF54C025E060A840B8E493A30A +:100AD800FAE493A3F8E493A3C8C582C8CAC583CA35 +:100AE800F0A3C8C582C8CAC583CADFE9DEE780BEED +:010CA3000050 +:10037B00BB010CE58229F582E5833AF583E0225037 +:10038B0006E92582F8E622BBFE06E92582F8E22281 +:0D039B00E58229F582E5833AF583E493229B +:1003A800F8BB010DE58229F582E5833AF583E8F08B +:1003B800225006E92582C8F622BBFE05E92582C837 +:0203C800F2221F +:1003CA00BC000BBE0029EF8DF084FFADF022E4CC17 +:1003DA00F875F008EF2FFFEE33FEEC33FCEE9DECE0 +:1003EA00984005FCEE9DFE0FD5F0E9E4CEFD22ED26 +:1003FA00F8F5F0EE8420D21CFEADF075F008EF2F70 +:10040A00FFED33FD4007985006D5F0F222C398FD60 +:05041A000FD5F0EA22FD +:10041F00C2D5EC30E709B2D5E4C39DFDE49CFCEEF8 +:10042F0030E715B2D5E4C39FFFE49EFE1203CAC3A3 +:10043F00E49DFDE49CFC80031203CA30D507C3E49E +:06044F009FFFE49EFE2267 +:0E045500C3E49FFFE49EFEE49DFDE49CFC22B8 +:00000001FF diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan.lnp b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan.lnp new file mode 100644 index 0000000..19346d7 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/Objects/zuolan.lnp @@ -0,0 +1,10 @@ +".\Objects\STARTUP.obj", +".\Objects\main.obj", +".\Objects\Key.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\init.obj", +".\Objects\ds1302.obj", +".\Objects\iic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/STARTUP.A51 b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/STARTUP.A51 new file mode 100644 index 0000000..ec99b9e --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/STARTUP.A51 @@ -0,0 +1,198 @@ +$NOMOD51 +;------------------------------------------------------------------------------ +; This file is part of the C51 Compiler package +; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc. +; Version 8.01 +; +; *** <<< Use Configuration Wizard in Context Menu >>> *** +;------------------------------------------------------------------------------ +; STARTUP.A51: This code is executed after processor reset. +; +; To translate this file use A51 with the following invocation: +; +; A51 STARTUP.A51 +; +; To link the modified STARTUP.OBJ file to your application use the following +; Lx51 invocation: +; +; Lx51 your object file list, STARTUP.OBJ controls +; +;------------------------------------------------------------------------------ +; +; User-defined Power-On Initialization of Memory +; +; With the following EQU statements the initialization of memory +; at processor reset can be defined: +; +; IDATALEN: IDATA memory size <0x0-0x100> +; Note: The absolute start-address of IDATA memory is always 0 +; The IDATA space overlaps physically the DATA and BIT areas. +IDATALEN EQU 80H +; +; XDATASTART: XDATA memory start address <0x0-0xFFFF> +; The absolute start address of XDATA memory +XDATASTART EQU 0 +; +; XDATALEN: XDATA memory size <0x0-0xFFFF> +; The length of XDATA memory in bytes. +XDATALEN EQU 0 +; +; PDATASTART: PDATA memory start address <0x0-0xFFFF> +; The absolute start address of PDATA memory +PDATASTART EQU 0H +; +; PDATALEN: PDATA memory size <0x0-0xFF> +; The length of PDATA memory in bytes. +PDATALEN EQU 0H +; +; +;------------------------------------------------------------------------------ +; +; Reentrant Stack Initialization +; +; The following EQU statements define the stack pointer for reentrant +; functions and initialized it: +; +; Stack Space for reentrant functions in the SMALL model. +; IBPSTACK: Enable SMALL model reentrant stack +; Stack space for reentrant functions in the SMALL model. +IBPSTACK EQU 0 ; set to 1 if small reentrant is used. +; IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF> +; Set the top of the stack to the highest location. +IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 +; +; +; Stack Space for reentrant functions in the LARGE model. +; XBPSTACK: Enable LARGE model reentrant stack +; Stack space for reentrant functions in the LARGE model. +XBPSTACK EQU 0 ; set to 1 if large reentrant is used. +; XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF> +; Set the top of the stack to the highest location. +XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1 +; +; +; Stack Space for reentrant functions in the COMPACT model. +; PBPSTACK: Enable COMPACT model reentrant stack +; Stack space for reentrant functions in the COMPACT model. +PBPSTACK EQU 0 ; set to 1 if compact reentrant is used. +; +; PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF> +; Set the top of the stack to the highest location. +PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 +; +; +;------------------------------------------------------------------------------ +; +; Memory Page for Using the Compact Model with 64 KByte xdata RAM +; Compact Model Page Definition +; +; Define the XDATA page used for PDATA variables. +; PPAGE must conform with the PPAGE set in the linker invocation. +; +; Enable pdata memory page initalization +PPAGEENABLE EQU 0 ; set to 1 if pdata object are used. +; +; PPAGE number <0x0-0xFF> +; uppermost 256-byte address of the page used for PDATA variables. +PPAGE EQU 0 +; +; SFR address which supplies uppermost address byte <0x0-0xFF> +; most 8051 variants use P2 as uppermost address byte +PPAGE_SFR DATA 0A0H +; +; +;------------------------------------------------------------------------------ + +; Standard SFR Symbols +ACC DATA 0E0H +B DATA 0F0H +SP DATA 81H +DPL DATA 82H +DPH DATA 83H + + NAME ?C_STARTUP + + +?C_C51STARTUP SEGMENT CODE +?STACK SEGMENT IDATA + + RSEG ?STACK + DS 1 + + EXTRN CODE (?C_START) + PUBLIC ?C_STARTUP + + CSEG AT 0 +?C_STARTUP: LJMP STARTUP1 + + RSEG ?C_C51STARTUP + +STARTUP1: + +IF IDATALEN <> 0 + MOV R0,#IDATALEN - 1 + CLR A +IDATALOOP: MOV @R0,A + DJNZ R0,IDATALOOP +ENDIF + +IF XDATALEN <> 0 + MOV DPTR,#XDATASTART + MOV R7,#LOW (XDATALEN) + IF (LOW (XDATALEN)) <> 0 + MOV R6,#(HIGH (XDATALEN)) +1 + ELSE + MOV R6,#HIGH (XDATALEN) + ENDIF + CLR A +XDATALOOP: MOVX @DPTR,A + INC DPTR + DJNZ R7,XDATALOOP + DJNZ R6,XDATALOOP +ENDIF + +IF PPAGEENABLE <> 0 + MOV PPAGE_SFR,#PPAGE +ENDIF + +IF PDATALEN <> 0 + MOV R0,#LOW (PDATASTART) + MOV R7,#LOW (PDATALEN) + CLR A +PDATALOOP: MOVX @R0,A + INC R0 + DJNZ R7,PDATALOOP +ENDIF + +IF IBPSTACK <> 0 +EXTRN DATA (?C_IBP) + + MOV ?C_IBP,#LOW IBPSTACKTOP +ENDIF + +IF XBPSTACK <> 0 +EXTRN DATA (?C_XBP) + + MOV ?C_XBP,#HIGH XBPSTACKTOP + MOV ?C_XBP+1,#LOW XBPSTACKTOP +ENDIF + +IF PBPSTACK <> 0 +EXTRN DATA (?C_PBP) + MOV ?C_PBP,#LOW PBPSTACKTOP +ENDIF + + MOV SP,#?STACK-1 + +; This code is required if you use L51_BANK.A51 with Banking Mode 4 +; Code Banking +; Select Bank 0 for L51_BANK.A51 Mode 4 +#if 0 +; Initialize bank mechanism to code bank 0 when using L51_BANK.A51 with Banking Mode 4. +EXTRN CODE (?B_SWITCH0) + CALL ?B_SWITCH0 ; init bank mechanism to code bank 0 +#endif +; + LJMP ?C_START + + END diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Key.c b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Key.c new file mode 100644 index 0000000..1f4fb1c --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Key.c @@ -0,0 +1,22 @@ +#include "Key.h" + +unsigned char Key_Scan() +{ + unsigned char temp = 0; + P44=0;P42=1;P35=1; + if(P30==0)temp=7; + if(P31==0)temp=6; + if(P32==0)temp=5; + if(P33==0)temp=4; + P44=1;P42=0;P35=1; + if(P30==0)temp=11; + if(P31==0)temp=10; + if(P32==0)temp=9; + if(P33==0)temp=8; + P44=1;P42=1;P35=0; + if(P30==0)temp=15; + if(P31==0)temp=14; + if(P32==0)temp=13; + if(P33==0)temp=12; + return temp; +} \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Key.h b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Key.h new file mode 100644 index 0000000..8b9821e --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Key.h @@ -0,0 +1,2 @@ +#include +unsigned char Key_Scan(); \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Led.c b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Led.c new file mode 100644 index 0000000..cf43236 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Led.c @@ -0,0 +1,17 @@ +#include "Led.h" +void Led_Disp(unsigned char addr,unsigned char enable) +{ + static unsigned char temp=0x00; + static unsigned char temp_old=0xff; + if(enable) + temp |= 1< +void Led_Disp(unsigned char addr,unsigned char enable); \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/STC15F2K60S2.H b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/STC15F2K60S2.H new file mode 100644 index 0000000..59227f9 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/STC15F2K60S2.H @@ -0,0 +1,303 @@ +#ifndef __STC15F2K60S2_H_ +#define __STC15F2K60S2_H_ + +///////////////////////////////////////////////// +//ע: STC15W4K32S4ϵеоƬ,ϵPWMصIOھΪ +// ̬,轫ЩΪ׼˫ڻǿģʽʹ +//IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2 +// P2.3/P2.7/P3.7/P4.2/P4.4/P4.5 +///////////////////////////////////////////////// + +///////////////////////////////////////////////// + +//ͷļ,ٰ"REG51.H" + +//ں⹦ܼĴ // λֵ +sfr ACC = 0xE0; //0000,0000 ۼAccumulator +sfr B = 0xF0; //0000,0000 BĴ +sfr PSW = 0xD0; //0000,0000 ״̬ +sbit CY = PSW^7; +sbit AC = PSW^6; +sbit F0 = PSW^5; +sbit RS1 = PSW^4; +sbit RS0 = PSW^3; +sbit OV = PSW^2; +sbit P = PSW^0; +sfr SP = 0x81; //0000,0111 ջָ +sfr DPL = 0x82; //0000,0000 ָֽ +sfr DPH = 0x83; //0000,0000 ָֽ + +//I/O ⹦ܼĴ +sfr P0 = 0x80; //1111,1111 ˿0 +sbit P00 = P0^0; +sbit P01 = P0^1; +sbit P02 = P0^2; +sbit P03 = P0^3; +sbit P04 = P0^4; +sbit P05 = P0^5; +sbit P06 = P0^6; +sbit P07 = P0^7; +sfr P1 = 0x90; //1111,1111 ˿1 +sbit P10 = P1^0; +sbit P11 = P1^1; +sbit P12 = P1^2; +sbit P13 = P1^3; +sbit P14 = P1^4; +sbit P15 = P1^5; +sbit P16 = P1^6; +sbit P17 = P1^7; +sfr P2 = 0xA0; //1111,1111 ˿2 +sbit P20 = P2^0; +sbit P21 = P2^1; +sbit P22 = P2^2; +sbit P23 = P2^3; +sbit P24 = P2^4; +sbit P25 = P2^5; +sbit P26 = P2^6; +sbit P27 = P2^7; +sfr P3 = 0xB0; //1111,1111 ˿3 +sbit P30 = P3^0; +sbit P31 = P3^1; +sbit P32 = P3^2; +sbit P33 = P3^3; +sbit P34 = P3^4; +sbit P35 = P3^5; +sbit P36 = P3^6; +sbit P37 = P3^7; +sfr P4 = 0xC0; //1111,1111 ˿4 +sbit P40 = P4^0; +sbit P41 = P4^1; +sbit P42 = P4^2; +sbit P43 = P4^3; +sbit P44 = P4^4; +sbit P45 = P4^5; +sbit P46 = P4^6; +sbit P47 = P4^7; +sfr P5 = 0xC8; //xxxx,1111 ˿5 +sbit P50 = P5^0; +sbit P51 = P5^1; +sbit P52 = P5^2; +sbit P53 = P5^3; +sbit P54 = P5^4; +sbit P55 = P5^5; +sbit P56 = P5^6; +sbit P57 = P5^7; +sfr P6 = 0xE8; //0000,0000 ˿6 +sbit P60 = P6^0; +sbit P61 = P6^1; +sbit P62 = P6^2; +sbit P63 = P6^3; +sbit P64 = P6^4; +sbit P65 = P6^5; +sbit P66 = P6^6; +sbit P67 = P6^7; +sfr P7 = 0xF8; //0000,0000 ˿7 +sbit P70 = P7^0; +sbit P71 = P7^1; +sbit P72 = P7^2; +sbit P73 = P7^3; +sbit P74 = P7^4; +sbit P75 = P7^5; +sbit P76 = P7^6; +sbit P77 = P7^7; +sfr P0M0 = 0x94; //0000,0000 ˿0ģʽĴ0 +sfr P0M1 = 0x93; //0000,0000 ˿0ģʽĴ1 +sfr P1M0 = 0x92; //0000,0000 ˿1ģʽĴ0 +sfr P1M1 = 0x91; //0000,0000 ˿1ģʽĴ1 +sfr P2M0 = 0x96; //0000,0000 ˿2ģʽĴ0 +sfr P2M1 = 0x95; //0000,0000 ˿2ģʽĴ1 +sfr P3M0 = 0xB2; //0000,0000 ˿3ģʽĴ0 +sfr P3M1 = 0xB1; //0000,0000 ˿3ģʽĴ1 +sfr P4M0 = 0xB4; //0000,0000 ˿4ģʽĴ0 +sfr P4M1 = 0xB3; //0000,0000 ˿4ģʽĴ1 +sfr P5M0 = 0xCA; //0000,0000 ˿5ģʽĴ0 +sfr P5M1 = 0xC9; //0000,0000 ˿5ģʽĴ1 +sfr P6M0 = 0xCC; //0000,0000 ˿6ģʽĴ0 +sfr P6M1 = 0xCB; //0000,0000 ˿6ģʽĴ1 +sfr P7M0 = 0xE2; //0000,0000 ˿7ģʽĴ0 +sfr P7M1 = 0xE1; //0000,0000 ˿7ģʽĴ1 + +//ϵͳ⹦ܼĴ +sfr PCON = 0x87; //0001,0000 ԴƼĴ +sfr AUXR = 0x8E; //0000,0000 Ĵ +sfr AUXR1 = 0xA2; //0000,0000 Ĵ1 +sfr P_SW1 = 0xA2; //0000,0000 ˿лĴ1 +sfr CLK_DIV = 0x97; //0000,0000 ʱӷƵƼĴ +sfr BUS_SPEED = 0xA1; //xx10,x011 ٶȿƼĴ +sfr P1ASF = 0x9D; //0000,0000 ˿1ģ⹦üĴ +sfr P_SW2 = 0xBA; //0xxx,x000 ˿лĴ + +//ж⹦ܼĴ +sfr IE = 0xA8; //0000,0000 жϿƼĴ +sbit EA = IE^7; +sbit ELVD = IE^6; +sbit EADC = IE^5; +sbit ES = IE^4; +sbit ET1 = IE^3; +sbit EX1 = IE^2; +sbit ET0 = IE^1; +sbit EX0 = IE^0; +sfr IP = 0xB8; //0000,0000 жȼĴ +sbit PPCA = IP^7; +sbit PLVD = IP^6; +sbit PADC = IP^5; +sbit PS = IP^4; +sbit PT1 = IP^3; +sbit PX1 = IP^2; +sbit PT0 = IP^1; +sbit PX0 = IP^0; +sfr IE2 = 0xAF; //0000,0000 жϿƼĴ2 +sfr IP2 = 0xB5; //xxxx,xx00 жȼĴ2 +sfr INT_CLKO = 0x8F; //0000,0000 ⲿжʱƼĴ + +//ʱ⹦ܼĴ +sfr TCON = 0x88; //0000,0000 T0/T1ƼĴ +sbit TF1 = TCON^7; +sbit TR1 = TCON^6; +sbit TF0 = TCON^5; +sbit TR0 = TCON^4; +sbit IE1 = TCON^3; +sbit IT1 = TCON^2; +sbit IE0 = TCON^1; +sbit IT0 = TCON^0; +sfr TMOD = 0x89; //0000,0000 T0/T1ģʽĴ +sfr TL0 = 0x8A; //0000,0000 T0ֽ +sfr TL1 = 0x8B; //0000,0000 T1ֽ +sfr TH0 = 0x8C; //0000,0000 T0ֽ +sfr TH1 = 0x8D; //0000,0000 T1ֽ +sfr T4T3M = 0xD1; //0000,0000 T3/T4ģʽĴ +sfr T3T4M = 0xD1; //0000,0000 T3/T4ģʽĴ +sfr T4H = 0xD2; //0000,0000 T4ֽ +sfr T4L = 0xD3; //0000,0000 T4ֽ +sfr T3H = 0xD4; //0000,0000 T3ֽ +sfr T3L = 0xD5; //0000,0000 T3ֽ +sfr T2H = 0xD6; //0000,0000 T2ֽ +sfr T2L = 0xD7; //0000,0000 T2ֽ +sfr WKTCL = 0xAA; //0000,0000 绽Ѷʱֽ +sfr WKTCH = 0xAB; //0000,0000 绽Ѷʱֽ +sfr WDT_CONTR = 0xC1; //0000,0000 ŹƼĴ + +//п⹦ܼĴ +sfr SCON = 0x98; //0000,0000 1ƼĴ +sbit SM0 = SCON^7; +sbit SM1 = SCON^6; +sbit SM2 = SCON^5; +sbit REN = SCON^4; +sbit TB8 = SCON^3; +sbit RB8 = SCON^2; +sbit TI = SCON^1; +sbit RI = SCON^0; +sfr SBUF = 0x99; //xxxx,xxxx 1ݼĴ +sfr S2CON = 0x9A; //0000,0000 2ƼĴ +sfr S2BUF = 0x9B; //xxxx,xxxx 2ݼĴ +sfr S3CON = 0xAC; //0000,0000 3ƼĴ +sfr S3BUF = 0xAD; //xxxx,xxxx 3ݼĴ +sfr S4CON = 0x84; //0000,0000 4ƼĴ +sfr S4BUF = 0x85; //xxxx,xxxx 4ݼĴ +sfr SADDR = 0xA9; //0000,0000 ӻַĴ +sfr SADEN = 0xB9; //0000,0000 ӻַμĴ + +//ADC ⹦ܼĴ +sfr ADC_CONTR = 0xBC; //0000,0000 A/DתƼĴ +sfr ADC_RES = 0xBD; //0000,0000 A/Dת8λ +sfr ADC_RESL = 0xBE; //0000,0000 A/Dת2λ + +//SPI ⹦ܼĴ +sfr SPSTAT = 0xCD; //00xx,xxxx SPI״̬Ĵ +sfr SPCTL = 0xCE; //0000,0100 SPIƼĴ +sfr SPDAT = 0xCF; //0000,0000 SPIݼĴ + +//IAP/ISP ⹦ܼĴ +sfr IAP_DATA = 0xC2; //0000,0000 EEPROMݼĴ +sfr IAP_ADDRH = 0xC3; //0000,0000 EEPROMַֽ +sfr IAP_ADDRL = 0xC4; //0000,0000 EEPROMַֽ +sfr IAP_CMD = 0xC5; //xxxx,xx00 EEPROMĴ +sfr IAP_TRIG = 0xC6; //0000,0000 EEPRPMĴ +sfr IAP_CONTR = 0xC7; //0000,x000 EEPROMƼĴ + +//PCA/PWM ⹦ܼĴ +sfr CCON = 0xD8; //00xx,xx00 PCAƼĴ +sbit CF = CCON^7; +sbit CR = CCON^6; +sbit CCF2 = CCON^2; +sbit CCF1 = CCON^1; +sbit CCF0 = CCON^0; +sfr CMOD = 0xD9; //0xxx,x000 PCA ģʽĴ +sfr CL = 0xE9; //0000,0000 PCAֽ +sfr CH = 0xF9; //0000,0000 PCAֽ +sfr CCAPM0 = 0xDA; //0000,0000 PCAģ0PWMĴ +sfr CCAPM1 = 0xDB; //0000,0000 PCAģ1PWMĴ +sfr CCAPM2 = 0xDC; //0000,0000 PCAģ2PWM Ĵ +sfr CCAP0L = 0xEA; //0000,0000 PCAģ0IJ׽/ȽϼĴֽ +sfr CCAP1L = 0xEB; //0000,0000 PCAģ1IJ׽/ȽϼĴֽ +sfr CCAP2L = 0xEC; //0000,0000 PCAģ2IJ׽/ȽϼĴֽ +sfr PCA_PWM0 = 0xF2; //xxxx,xx00 PCAģ0PWMĴ +sfr PCA_PWM1 = 0xF3; //xxxx,xx00 PCAģ1PWMĴ +sfr PCA_PWM2 = 0xF4; //xxxx,xx00 PCAģ1PWMĴ +sfr CCAP0H = 0xFA; //0000,0000 PCAģ0IJ׽/ȽϼĴֽ +sfr CCAP1H = 0xFB; //0000,0000 PCAģ1IJ׽/ȽϼĴֽ +sfr CCAP2H = 0xFC; //0000,0000 PCAģ2IJ׽/ȽϼĴֽ + +//Ƚ⹦ܼĴ +sfr CMPCR1 = 0xE6; //0000,0000 ȽƼĴ1 +sfr CMPCR2 = 0xE7; //0000,0000 ȽƼĴ2 + +//ǿPWMη⹦ܼĴ +sfr PWMCFG = 0xf1; //x000,0000 PWMüĴ +sfr PWMCR = 0xf5; //0000,0000 PWMƼĴ +sfr PWMIF = 0xf6; //x000,0000 PWMжϱ־Ĵ +sfr PWMFDCR = 0xf7; //xx00,0000 PWMⲿ쳣ƼĴ + +//⹦ܼĴλչRAM +//ЩĴ,ȽP_SW2BIT7Ϊ1,ſд +#define PWMC (*(unsigned int volatile xdata *)0xfff0) +#define PWMCH (*(unsigned char volatile xdata *)0xfff0) +#define PWMCL (*(unsigned char volatile xdata *)0xfff1) +#define PWMCKS (*(unsigned char volatile xdata *)0xfff2) +#define PWM2T1 (*(unsigned int volatile xdata *)0xff00) +#define PWM2T1H (*(unsigned char volatile xdata *)0xff00) +#define PWM2T1L (*(unsigned char volatile xdata *)0xff01) +#define PWM2T2 (*(unsigned int volatile xdata *)0xff02) +#define PWM2T2H (*(unsigned char volatile xdata *)0xff02) +#define PWM2T2L (*(unsigned char volatile xdata *)0xff03) +#define PWM2CR (*(unsigned char volatile xdata *)0xff04) +#define PWM3T1 (*(unsigned int volatile xdata *)0xff10) +#define PWM3T1H (*(unsigned char volatile xdata *)0xff10) +#define PWM3T1L (*(unsigned char volatile xdata *)0xff11) +#define PWM3T2 (*(unsigned int volatile xdata *)0xff12) +#define PWM3T2H (*(unsigned char volatile xdata *)0xff12) +#define PWM3T2L (*(unsigned char volatile xdata *)0xff13) +#define PWM3CR (*(unsigned char volatile xdata *)0xff14) +#define PWM4T1 (*(unsigned int volatile xdata *)0xff20) +#define PWM4T1H (*(unsigned char volatile xdata *)0xff20) +#define PWM4T1L (*(unsigned char volatile xdata *)0xff21) +#define PWM4T2 (*(unsigned int volatile xdata *)0xff22) +#define PWM4T2H (*(unsigned char volatile xdata *)0xff22) +#define PWM4T2L (*(unsigned char volatile xdata *)0xff23) +#define PWM4CR (*(unsigned char volatile xdata *)0xff24) +#define PWM5T1 (*(unsigned int volatile xdata *)0xff30) +#define PWM5T1H (*(unsigned char volatile xdata *)0xff30) +#define PWM5T1L (*(unsigned char volatile xdata *)0xff31) +#define PWM5T2 (*(unsigned int volatile xdata *)0xff32) +#define PWM5T2H (*(unsigned char volatile xdata *)0xff32) +#define PWM5T2L (*(unsigned char volatile xdata *)0xff33) +#define PWM5CR (*(unsigned char volatile xdata *)0xff34) +#define PWM6T1 (*(unsigned int volatile xdata *)0xff40) +#define PWM6T1H (*(unsigned char volatile xdata *)0xff40) +#define PWM6T1L (*(unsigned char volatile xdata *)0xff41) +#define PWM6T2 (*(unsigned int volatile xdata *)0xff42) +#define PWM6T2H (*(unsigned char volatile xdata *)0xff42) +#define PWM6T2L (*(unsigned char volatile xdata *)0xff43) +#define PWM6CR (*(unsigned char volatile xdata *)0xff44) +#define PWM7T1 (*(unsigned int volatile xdata *)0xff50) +#define PWM7T1H (*(unsigned char volatile xdata *)0xff50) +#define PWM7T1L (*(unsigned char volatile xdata *)0xff51) +#define PWM7T2 (*(unsigned int volatile xdata *)0xff52) +#define PWM7T2H (*(unsigned char volatile xdata *)0xff52) +#define PWM7T2L (*(unsigned char volatile xdata *)0xff53) +#define PWM7CR (*(unsigned char volatile xdata *)0xff54) + +///////////////////////////////////////////////// + +#endif + diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Seg.c b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Seg.c new file mode 100644 index 0000000..73fc1e5 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Seg.c @@ -0,0 +1,21 @@ +#include "Seg.h" +// 0-9 +// F P - H A L +code unsigned char Seg_dula[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff, + 0x8e,0x8c,0xbf,0x89,0x88,0xc7}; +void Seg_Disp(unsigned char wela,unsigned char dula,unsigned char point) +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; + + P0 = 0x01 << wela; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + P0 = Seg_dula[dula]; + if(point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Seg.h b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Seg.h new file mode 100644 index 0000000..aefea12 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/Seg.h @@ -0,0 +1,2 @@ +#include +void Seg_Disp(unsigned char wela,unsigned char dula,unsigned char point); \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/ds1302.c b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/ds1302.c new file mode 100644 index 0000000..2710085 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/ds1302.c @@ -0,0 +1,72 @@ +/* # DS1302代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "ds1302.h" +#include "intrins.h" +sbit SCK = P1^7; +sbit SDA = P2^3; +sbit RST = P1^3; +// +void Write_Ds1302(unsigned char temp) +{ + unsigned char i; + for (i=0;i<8;i++) + { + SCK = 0; + SDA = temp&0x01; + temp>>=1; + SCK=1; + } +} + +// +void Write_Ds1302_Byte( unsigned char address,unsigned char dat ) +{ + RST=0; _nop_(); + SCK=0; _nop_(); + RST=1; _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST=0; +} + +// +unsigned char Read_Ds1302_Byte ( unsigned char address ) +{ + unsigned char i,temp=0x00; + RST=0; _nop_(); + SCK=0; _nop_(); + RST=1; _nop_(); + Write_Ds1302(address); + for (i=0;i<8;i++) + { + SCK=0; + temp>>=1; + if(SDA) + temp|=0x80; + SCK=1; + } + RST=0; _nop_(); + SCK=0; _nop_(); + SCK=1; _nop_(); + SDA=0; _nop_(); + SDA=1; _nop_(); + return (temp); +} + +void Set_Rtc(unsigned char *Rtc) +{ + unsigned char i ; + Write_Ds1302_Byte(0x8e,0x00);//关闭写保护 + for( i = 0;i < 3 ; i++) + Write_Ds1302_Byte(0x84-2*i,Rtc[i]); + Write_Ds1302_Byte(0x8e,0x80);//开启写保护 +} +void Read_Rtc(unsigned char *Rtc) +{ + unsigned char i ; + for( i = 0;i < 3 ; i++) + Rtc[i]=Read_Ds1302_Byte(0x85-2*i); +} diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/ds1302.h b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/ds1302.h new file mode 100644 index 0000000..634ec0e --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/ds1302.h @@ -0,0 +1,3 @@ +#include +void Set_Rtc(unsigned char *Rtc); +void Read_Rtc(unsigned char *Rtc); \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/iic.c b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/iic.c new file mode 100644 index 0000000..1262dad --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/iic.c @@ -0,0 +1,91 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 10 +sbit sda = P2^1; +sbit scl = P2^0; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_();_nop_();_nop_();_nop_();_nop_(); + _nop_();_nop_();_nop_();_nop_();_nop_(); + _nop_();_nop_();_nop_();_nop_();_nop_(); + } + while(n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for(i=0; i<8; i++){ + scl = 0; + I2C_Delay(DELAY_TIME); + if(byt & 0x80){ + sda = 1; + } + else{ + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +void Da_Write(unsigned char dat) +{ + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/iic.h b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/iic.h new file mode 100644 index 0000000..caec587 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/iic.h @@ -0,0 +1,2 @@ +#include +void Da_Write(unsigned char dat); \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/init.c b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/init.c new file mode 100644 index 0000000..821f3c5 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/init.c @@ -0,0 +1,11 @@ +#include "init.h" +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f| 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f| 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/init.h b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/init.h new file mode 100644 index 0000000..972766d --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/driver/init.h @@ -0,0 +1,2 @@ +#include +void System_Init(); \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/user/main.c b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/user/main.c new file mode 100644 index 0000000..1818c69 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/user/main.c @@ -0,0 +1,271 @@ +#include "main.h" + +/* LedSeg */ +unsigned char ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +unsigned char Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; +unsigned char Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +unsigned char Seg_Pos; +/* ʱ */ +unsigned int Time_1s; +unsigned char ucRtc[3] = {0x00, 0x00, 0x00}; +unsigned char MAX_Rtc[3]; +unsigned char Time_200ms_Freq; // Ƶ˸ʱ200ms +unsigned char Time_200ms_Wring; // ֵ˸ʱ200ms +/* */ +unsigned int Freq; // Ƶ +unsigned int Freq_CAL; // ƵУ׼ֵ +unsigned int Freq_MAX; // Ƶ +unsigned int Para_Limit = 2000; // ޲ 1000 - 9000 +int Para_Right = 0; // У׼ -900 - 900 +float Da_Out_Amp; // ѹģֵ +unsigned char Da_Out_Dig; // ѹֵ +/* ʾ */ +unsigned char Seg_Show_Mode; // 0 Ƶʽ 1 2 ʱ 3 Խ +unsigned char Para_Mode; // 0 ޲ 1 У׼ֵ +unsigned char Re_Show_Mode; // 0 Ƶʻ 1 ʱ +/* ж */ +bit Freq_Error; // СУ׼ +bit Led_Blink_Flag_Freq; // Ƶʲ˸־ +bit Led_Blink_Flag_Wring; // ֵ˸־ +bit Freq_Wring; // ޲ + +void Key_Proc() { + static unsigned char Key_Val, Key_Old, Key_Down, Key_Up; + if (Time_1s % 10) return; + Key_Val = Key_Scan(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 4) { + Seg_Show_Mode = (++Seg_Show_Mode) % 4; + Para_Mode = Re_Show_Mode = 0; + } + switch (Seg_Show_Mode) { + case 1: + /* ҳ */ + if (Key_Down == 5) Para_Mode = (++Para_Mode) % 2; + switch (Para_Mode) { + case 0: + /* ޲ */ + if (Key_Down == 8) + Para_Limit = (Para_Limit == 9000) ? 1000 : Para_Limit + 1000; + else if (Key_Down == 9) + Para_Limit = (Para_Limit == 1000) ? 9000 : Para_Limit - 1000; + break; + case 1: + /* У׼ֵ */ + if (Key_Down == 8) + Para_Right = (Para_Right == 900) ? -900 : Para_Right + 100; + else if (Key_Down == 9) + Para_Right = (Para_Right == -900) ? 900 : Para_Right - 100; + break; + break; + } + break; + case 3: + /* ҳ */ + if (Key_Down == 5) Re_Show_Mode = (++Re_Show_Mode) % 2; + break; + } +} +void Seg_Proc() { + unsigned int Para_Temp; + Para_Temp = -Para_Right; + if (Time_1s % 20) return; + Read_Rtc(ucRtc); + if (Freq_CAL > Freq_MAX) { + Freq_MAX = Freq_CAL; + Read_Rtc(MAX_Rtc); + } + if (Freq_Error) + Da_Out_Amp = 0; + else { + if (Freq_CAL > Para_Limit) + Da_Out_Amp = 5; + else if (Freq_CAL < 500) + Da_Out_Amp = 1; + else + Da_Out_Amp = (float)Freq_CAL * 4.0 / (Para_Limit - 500.0); + } + Da_Out_Dig = Da_Out_Amp * 51; + switch (Seg_Show_Mode) { + case 0: + /* Ƶʽ */ + Seg_Buf[0] = 11; // F + Seg_Buf[1] = Seg_Buf[2] = 10; + if (Freq_Error) { + Seg_Buf[3] = Seg_Buf[4] = Seg_Buf[5] = 10; + Seg_Buf[6] = Seg_Buf[7] = 16; // L + } else { + Seg_Buf[3] = (Freq_CAL / 10000 % 10 == 0) ? 10 : Freq_CAL / 10000 % 10; + Seg_Buf[4] = (Seg_Buf[3] == 10 && Freq_CAL / 1000 % 10 == 0) + ? 10 + : Freq_CAL / 1000 % 10; + Seg_Buf[5] = (Seg_Buf[4] == 10 && Freq_CAL / 100 % 10 == 0) + ? 10 + : Freq_CAL / 100 % 10; + Seg_Buf[6] = (Seg_Buf[5] == 10 && Freq_CAL / 10 % 10 == 0) + ? 10 + : Freq_CAL / 10 % 10; + Seg_Buf[7] = Freq_CAL % 10; + } + break; + case 1: + /* */ + Seg_Buf[0] = 12; // P + Seg_Buf[1] = Para_Mode + 1; + Seg_Buf[2] = Seg_Buf[3] = 10; + switch (Para_Mode) { + case 0: + /* ޲ */ + Seg_Buf[4] = Para_Limit / 1000 % 10; + Seg_Buf[5] = Para_Limit / 100 % 10; + Seg_Buf[6] = Para_Limit / 10 % 10; + Seg_Buf[7] = Para_Limit % 10; + break; + case 1: + /* У׼ֵ */ + if (Para_Right >= 0) { + // + Seg_Buf[4] = 10; + if (Para_Right != 0) { + Seg_Buf[5] = Para_Right / 100 % 10; + Seg_Buf[6] = Para_Right / 10 % 10; + Seg_Buf[7] = Para_Right % 10; + } else { + Seg_Buf[5] = Seg_Buf[6] = 10; + Seg_Buf[7] = 0; + } + } else { + // + Seg_Buf[4] = 13; + Seg_Buf[5] = Para_Temp / 100 % 10; + Seg_Buf[6] = Para_Temp / 10 % 10; + Seg_Buf[7] = Para_Temp % 10; + } + break; + } + break; + case 2: + /* ʱ */ + Seg_Buf[0] = ucRtc[0] / 16; + Seg_Buf[1] = ucRtc[0] % 16; + Seg_Buf[2] = 13; //- + Seg_Buf[3] = ucRtc[1] / 16; + Seg_Buf[4] = ucRtc[1] % 16; + Seg_Buf[5] = 13; //- + Seg_Buf[6] = ucRtc[2] / 16; + Seg_Buf[7] = ucRtc[2] % 16; + break; + case 3: + /* Խ */ + Seg_Buf[0] = 14; // H + switch (Re_Show_Mode) { + case 0: + /* Ƶʻ */ + Seg_Buf[1] = 11; // F + Seg_Buf[2] = 10; + Seg_Buf[3] = + (Freq_MAX / 10000 % 10 == 0) ? 10 : Freq_MAX / 10000 % 10; + Seg_Buf[4] = (Seg_Buf[3] == 10 && Freq_MAX / 1000 % 10 == 0) + ? 10 + : Freq_MAX / 1000 % 10; + Seg_Buf[5] = (Seg_Buf[4] == 10 && Freq_MAX / 100 % 10 == 0) + ? 10 + : Freq_MAX / 100 % 10; + Seg_Buf[6] = (Seg_Buf[5] == 10 && Freq_MAX / 10 % 10 == 0) + ? 10 + : Freq_MAX / 10 % 10; + Seg_Buf[7] = Freq_MAX % 10; + break; + case 1: + /* ʱ */ + Seg_Buf[1] = 15; // A + Seg_Buf[2] = MAX_Rtc[0] / 16; + Seg_Buf[3] = MAX_Rtc[0] % 16; + Seg_Buf[4] = MAX_Rtc[1] / 16; + Seg_Buf[5] = MAX_Rtc[1] % 16; + Seg_Buf[6] = MAX_Rtc[2] / 16; + Seg_Buf[7] = MAX_Rtc[2] % 16; + break; + } + } +} +void Led_Proc() { + ucLed[0] = Led_Blink_Flag_Freq; + ucLed[1] = Led_Blink_Flag_Wring; + Da_Write(Da_Out_Dig); +} +void Timer0Init(void) // 100΢@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TMOD |= 0x05; + TL0 = 0x00; // öʱֵ + TH0 = 0x00; // öʱֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ +} +void Timer1Init(void) // 1@12.000MHz +{ + AUXR &= 0xBF; // ʱʱ12Tģʽ + TMOD &= 0x0F; // öʱģʽ + TL1 = 0x18; // öʱֵ + TH1 = 0xFC; // öʱֵ + TF1 = 0; // TF1־ + TR1 = 1; // ʱ1ʼʱ + ET1 = 1; + EA = 1; +} +void Timer1Isr(void) interrupt 3 { + unsigned char i; + unsigned int Para_Temp; + Para_Temp = -Para_Right; + if (++Time_1s == 1000) { + Time_1s = 0; + Freq = TH0 << 8 | TL0; + if (Para_Right < 0 && Para_Temp > Freq) { + Freq_Error = 1; + Freq = 0; + } else { + Freq_Error = 0; + Freq_CAL = Freq + Para_Right; + } + TH0 = TL0 = 0; + } + if (Seg_Show_Mode == 0) { + if (++Time_200ms_Freq == 200) { + Time_200ms_Freq = 0; + Led_Blink_Flag_Freq ^= 1; + } + } else { + Time_200ms_Freq = 0; + Led_Blink_Flag_Freq = 0; + } + if (Freq_Error) { + Time_200ms_Wring = 0; + Led_Blink_Flag_Wring = 1; + } else if (Freq > Para_Limit) { + if (++Time_200ms_Wring == 200) { + Time_200ms_Wring = 0; + Led_Blink_Flag_Wring ^= 1; + } + } else { + Time_200ms_Wring = 0; + Led_Blink_Flag_Wring = 0; + } + Seg_Pos = (++Seg_Pos) % 8; + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + for (i = 0; i < 8; i++) Led_Disp(i, ucLed[i]); +} +void main() { + System_Init(); + Timer0Init(); + Timer1Init(); + Set_Rtc(ucRtc); + while (1) { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/user/main.h b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/user/main.h new file mode 100644 index 0000000..ab0248e --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/user/main.h @@ -0,0 +1,7 @@ +#include +#include "Seg.h" +#include "Led.h" +#include "Key.h" +#include "init.h" +#include "ds1302.h" +#include "iic.h" \ No newline at end of file diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvgui.ZBright b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvgui.ZBright new file mode 100644 index 0000000..c3dcc88 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvgui.ZBright @@ -0,0 +1,1932 @@ + + + + -6.1 + +
### uVision Project, (C) Keil Software
+ + + + + + + + + + 38003 + Registers + 188 122 + + + 346 + Code Coverage + 1410 160 + + + 204 + Performance Analyzer + 1570 + + + + + + 35141 + Event Statistics + + 200 50 700 + + + 1506 + Symbols + + 106 106 106 + + + 1936 + Watch 1 + + 200 133 133 + + + 1937 + Watch 2 + + 200 133 133 + + + 1935 + Call Stack + Locals + + 200 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + 466 + Source Browser + 500 + 300 + + + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 115 + 335 + 2254 + 1341 + + + + 0 + + 1104 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000700000006000000010000006C443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CCCE2C4BF5CD5E6CCE25C313520B5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5CB5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5C757365725C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF6D443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CCCE2C4BF5CD5E6CCE25C313520B5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5CB5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5C6472697665725C4B65792E6300000000054B65792E6300000000FFDC7800FFFFFFFF6D443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CCCE2C4BF5CD5E6CCE25C313520B5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5CB5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5C6472697665725C4C65642E6300000000054C65642E6300000000BECEA100FFFFFFFF6D443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CCCE2C4BF5CD5E6CCE25C313520B5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5CB5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5C6472697665725C5365672E6300000000055365672E6300000000F0A0A100FFFFFFFF6E443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CCCE2C4BF5CD5E6CCE25C313520B5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5CB5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5C6472697665725C696E69742E630000000006696E69742E6300000000BCA8E100FFFFFFFF70443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CCCE2C4BF5CD5E6CCE25C313520B5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5CB5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5C6472697665725C6473313330322E6300000000086473313330322E63000000009CC1B600FFFFFFFF6D443A5C4769745C4769744875625C6C616E7169616F6265695F73747564792D6D61737465725CCCE2C4BF5CD5E6CCE25C313520B5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5CB5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5C6472697665725C6969632E6300000000056969632E6300000000F7B88600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000009B020000E1000000C60800005A040000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 440100004F0000007007000013010000 + + + 16 + 9B020000E1000000C7080000A5010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AF030000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AF030000 + + + 16 + BE000000D50000003A020000E9030000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D50000007604000099010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D50000007604000099010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D50000007604000099010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D50000007604000099010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + BE000000D50000007604000099010000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D50000007604000099010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D50000007604000099010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D50000007604000099010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D50000007604000099010000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AF030000 + + + 16 + BE000000D50000003A020000E9030000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AF030000 + + + 16 + BE000000D50000003A020000E9030000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000E00300006F07000090040000 + + + 16 + BE000000D50000007604000099010000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000ED02000070070000C5030000 + + + 16 + BE000000D50000007604000099010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E30300006C07000077040000 + + + 16 + BE000000D50000007604000099010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + BE000000D50000007604000099010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + BE000000D50000007604000099010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D50000007604000099010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + BE000000D50000007604000099010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + BE000000D50000007604000099010000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + BE000000D50000007604000099010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000003D010000AF030000 + + + 16 + BE000000D50000003A020000E9030000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E30300006C07000077040000 + + + 16 + BE000000D50000007604000099010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E30300006C07000077040000 + + + 16 + BE000000D50000003A020000E9030000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E30300006C07000077040000 + + + 16 + BE000000D50000003A020000E9030000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E30300006C07000077040000 + + + 16 + BE000000D50000003A020000E9030000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 47010000660000006D070000FA000000 + + + 16 + BE000000D50000007604000099010000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 33060000660000006D070000E4020000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 966 + 0 + 8192 + 0 + + 16 + 0000000000000000D10300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000900400006F070000A3040000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 476 + 0 + 8192 + 1 + + 16 + 000000001C000000E701000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000040300006D070000AC030000 + + + 16 + BE000000D5000000FE010000E6010000 + + + + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000130100007007000017010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000009B020000E1000000C7080000A5010000440100004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000087070000E1000000C70800008F030000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F00000044010000C8030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000057010000E1000000970200005A040000000000004F00000040010000C80300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E902000070070000ED02000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000570100007F030000C70800005704000000000000ED02000070070000C503000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000ED020000BC030000C503000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000C80300006F070000CC030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000570100005E040000C60800002205000000000000CC0300006F070000900400000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2537 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 972 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 2560 + 1440 + + + + + + 1 + 0 + + 100 + 6 + + .\user\main.c + 44 + 1 + 15 + 1 + + 0 + + + .\driver\Key.c + 0 + 1 + 1 + 1 + + 0 + + + .\driver\Led.c + 0 + 1 + 1 + 1 + + 0 + + + .\driver\Seg.c + 0 + 1 + 1 + 1 + + 0 + + + .\driver\init.c + 0 + 1 + 1 + 1 + + 0 + + + .\driver\ds1302.c + 0 + 1 + 1 + 1 + + 0 + + + .\driver\iic.c + 0 + 1 + 9 + 1 + + 0 + + + + +
diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvgui.haze b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvgui.haze new file mode 100644 index 0000000..22979da --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvgui.haze @@ -0,0 +1,1360 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 0 + 1 + 1537 + 790 + + + + 0 + + 313 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000075463A5C636F6D7065746974696F6E5CC0B6C7C5B1AD5C626C75652D6272696467652D6375702D6C6561726E696E675CCCE2C4BF5CD5E6CCE25C313520B5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5CB5DACAAECEE5BDECCAA1C8FC5FD7F3E1B05FCAA1D2BB5C757365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E00000000060000A8020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000B7000000 + + + 16 + 940100007E00000070040000E6000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000060020000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000060020000 + + + 16 + 8A000000B90000006D0100005C020000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000060020000 + + + 16 + 8A000000B90000006D0100005C020000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000060020000 + + + 16 + 8A000000B90000006D0100005C020000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000009102000000060000E5020000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000007C01000070040000F8010000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000094020000FD050000CC020000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D0400009E000000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000060020000 + + + 16 + 8A000000B90000006D0100005C020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000094020000FD050000CC020000 + + + 16 + 8A000000B9000000C202000021010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000094020000FD050000CC020000 + + + 16 + 8A000000B90000006D0100005C020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000930100006D040000DF010000 + + + 16 + 8A000000B90000001A02000049020000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000B700000070040000BB000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000E6000000940100004F00000070040000B70000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008C010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000BB010000E00200004F000000700400008C0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000079020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E00000090010000A8020000000000004F00000090010000790200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000078010000700400007C01000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000AB0100007004000027020000000000007C01000070040000F801000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF380200007C0100003C020000F801000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000079020000000600007D020000010000000100001004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000AC0200000006000014030000000000007D02000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2155 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000046461743296000000000000001000046461743203646174134C65645F426C696E6B5F466C61675F46726571014804434F4C3404434F4C3304434F4C3204434F4C3104524F573404524F573304524F573204524F5731035032330250310373627502736200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020000001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 0 + + .\user\main.c + 0 + 1 + 1 + 1 + + 0 + + + + +
diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvopt b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvopt new file mode 100644 index 0000000..92489af --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvopt @@ -0,0 +1,277 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 12 + + + + + + + + + + + BIN\STCMON51.DLL + + + + 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 + + + + + + + + + + + + + user + 1 + 0 + 0 + 0 + + 1 + 1 + 2 + 0 + 0 + 0 + .\STARTUP.A51 + STARTUP.A51 + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + .\user\main.c + main.c + 0 + 0 + + + + + driver + 1 + 0 + 0 + 0 + + 2 + 3 + 1 + 0 + 0 + 0 + .\driver\Key.c + Key.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + .\driver\Led.c + Led.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + .\driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + .\driver\init.c + init.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + .\driver\ds1302.c + ds1302.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + .\driver\iic.c + iic.c + 0 + 0 + + + +
diff --git a/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvproj b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvproj new file mode 100644 index 0000000..4921d74 --- /dev/null +++ b/题目/真题/15 第十五届省赛_左岚_省一/第十五届省赛_左岚_省一/zuolan.uvproj @@ -0,0 +1,430 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + 8 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 12 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + .\driver;.\user + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + user + + + STARTUP.A51 + 2 + .\STARTUP.A51 + + + main.c + 1 + .\user\main.c + + + + + driver + + + Key.c + 1 + .\driver\Key.c + + + Led.c + 1 + .\driver\Led.c + + + Seg.c + 1 + .\driver\Seg.c + + + init.c + 1 + .\driver\init.c + + + ds1302.c + 1 + .\driver\ds1302.c + + + iic.c + 1 + .\driver\iic.c + + + + + + + +
diff --git a/题目/真题/2 第二届省赛_左岚/第2届省赛-模拟智能传送装置.pdf b/题目/真题/2 第二届省赛_左岚/第2届省赛-模拟智能传送装置.pdf new file mode 100644 index 0000000..b39fa8d Binary files /dev/null and b/题目/真题/2 第二届省赛_左岚/第2届省赛-模拟智能传送装置.pdf differ diff --git a/题目/真题/3 第三届省赛_左岚/第3届省赛-智能售水机.pdf b/题目/真题/3 第三届省赛_左岚/第3届省赛-智能售水机.pdf new file mode 100644 index 0000000..3bdd299 Binary files /dev/null and b/题目/真题/3 第三届省赛_左岚/第3届省赛-智能售水机.pdf differ diff --git a/题目/真题/4 第四届省赛_左岚/第4届省赛-模拟智能灌溉系统.pdf b/题目/真题/4 第四届省赛_左岚/第4届省赛-模拟智能灌溉系统.pdf new file mode 100644 index 0000000..5a32e62 Binary files /dev/null and b/题目/真题/4 第四届省赛_左岚/第4届省赛-模拟智能灌溉系统.pdf differ diff --git a/题目/真题/5 第五届省赛_左岚/第5届省赛-简易温度采集与控制装置.pdf b/题目/真题/5 第五届省赛_左岚/第5届省赛-简易温度采集与控制装置.pdf new file mode 100644 index 0000000..0c386a4 Binary files /dev/null and b/题目/真题/5 第五届省赛_左岚/第5届省赛-简易温度采集与控制装置.pdf differ diff --git a/题目/真题/6 第六届省赛_左岚/第6届省赛-温度记录器.pdf b/题目/真题/6 第六届省赛_左岚/第6届省赛-温度记录器.pdf new file mode 100644 index 0000000..41c0043 Binary files /dev/null and b/题目/真题/6 第六届省赛_左岚/第6届省赛-温度记录器.pdf differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/.vscode/settings.json b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/.vscode/settings.json new file mode 100644 index 0000000..6cb9635 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/.vscode/settings.json @@ -0,0 +1,19 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp", + "led.h": "c" + } +} \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Init.c b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Init.h b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Key.c b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Key.h b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Led.c b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Led.c new file mode 100644 index 0000000..4749a48 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Led.c @@ -0,0 +1,21 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Led.h b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Led.h new file mode 100644 index 0000000..e50c9a7 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Led.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Seg.c b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Seg.c new file mode 100644 index 0000000..b0b6a73 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Seg.c @@ -0,0 +1,24 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 - C +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0xbf, 0xc6}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Seg.h b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/onewire.c b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/onewire.c new file mode 100644 index 0000000..8efce41 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/onewire.c @@ -0,0 +1,98 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "REG52.H" +#include "intrins.h" +sbit DQ = P1 ^ 4; // 单总线数据口 +void Delay4us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 9; + while (--i) + ; +} + +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + Delay4us(); + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0x44); // 启动温度转换 + Delay_OneWire(200); // 等待温度转换 + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0xbe); // 读取温度值 + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/onewire.h b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/Driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Init.lst b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Init.lst new file mode 100644 index 0000000..fa04f80 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 03/28/2024 20:26:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Key.lst b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Key.lst new file mode 100644 index 0000000..3b475a2 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 03/28/2024 20:26:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 03/28/2024 20:26:04 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Led.lst b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Led.lst new file mode 100644 index 0000000..c503e18 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Led.lst @@ -0,0 +1,45 @@ +C51 COMPILER V9.59.0.0 LED 03/28/2024 20:26:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 58 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 2 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Seg.lst b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Seg.lst new file mode 100644 index 0000000..e4e6268 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Seg.lst @@ -0,0 +1,48 @@ +C51 COMPILER V9.59.0.0 SEG 03/28/2024 20:26:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 - C + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0xbf, 0xc6}; + 5 // λѡ + 6 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 8 { + 9 1 // ֶ + 10 1 P0 = 0xff; + 11 1 P2 = P2 & 0x1f | 0xe0; + 12 1 + 13 1 // ѡʾλ + 14 1 P0 = seg_wela[wela]; + 15 1 P2 = P2 & 0x1f | 0xc0; + 16 1 P2 &= 0x1f; + 17 1 + 18 1 // ѡʾ + 19 1 P0 = seg_dula[dula]; + 20 1 if (point) + 21 1 P0 &= 0x7f; + 22 1 P2 = P2 & 0x1f | 0xe0; + 23 1 P2 &= 0x1f; + 24 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 21 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Uart.lst b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Ultrasonic.lst b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/ds1302.lst b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/iic.lst b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/iic.lst new file mode 100644 index 0000000..27e3624 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/main.lst b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/main.lst new file mode 100644 index 0000000..776bed4 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/main.lst @@ -0,0 +1,227 @@ +C51 COMPILER V9.59.0.0 MAIN 03/28/2024 20:26:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ̷ */ + 12 uchar Key_Slow_Down; + 13 + 14 /* */ + 15 uchar Work_mode; // 0 ˯߷20 1 Ȼ30 2 70 + 16 bit Seg_show_mode; // 0 ʾ 1 ʾ¶ + 17 + 18 /* ʱ */ + 19 uchar Work_time; // ʱ + 20 uchar time_mode_index; // 0->0 1->1 2->2 + 21 uchar time_mode[3] = {0, 60, 120}; + 22 uchar Work_mode_P34[3] = {2, 3, 7}; + 23 uchar time_1ms; + 24 uint time_1s; + 25 /* ̴ */ + 26 void Key_Proc() + 27 { + 28 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 29 1 if (Key_Slow_Down) + 30 1 return; + 31 1 Key_Slow_Down = 1; + 32 1 + 33 1 Key_Val = Key_Read(); + 34 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 35 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 36 1 Key_Old = Key_Val; + 37 1 + 38 1 if (Key_Down == 4) + 39 1 Work_mode = (++Work_mode) % 3; + 40 1 if (Key_Down == 5) + 41 1 { + 42 2 time_mode_index = (++time_mode_index) % 3; + 43 2 Work_time = time_mode[time_mode_index]; + 44 2 } + 45 1 if (Key_Down == 6) + 46 1 Work_time = 0; + 47 1 if (Key_Down == 7) + 48 1 Seg_show_mode ^= 1; + 49 1 } + 50 /* ܴ */ + 51 void Seg_Proc() + 52 { + 53 1 uchar T_value; + 54 1 if (Seg_Slow_Down) + C51 COMPILER V9.59.0.0 MAIN 03/28/2024 20:26:04 PAGE 2 + + 55 1 return; + 56 1 Seg_Slow_Down = 1; + 57 1 Seg_Buf[0] = 11; //- + 58 1 Seg_Buf[2] = 11; //- + 59 1 Seg_Buf[3] = 10; // + 60 1 T_value = rd_temperature(); + 61 1 if (Seg_show_mode == 0) + 62 1 { + 63 2 // Ƿʾҳ + 64 2 Seg_Buf[1] = Work_mode + 1; + 65 2 Seg_Buf[4] = Work_time / 1000 % 10; + 66 2 Seg_Buf[5] = Work_time / 100 % 10; + 67 2 Seg_Buf[6] = Work_time / 10 % 10; + 68 2 Seg_Buf[7] = Work_time % 10; + 69 2 } + 70 1 else + 71 1 { + 72 2 // ¶ʾҳ + 73 2 Seg_Buf[1] = 4; + 74 2 Seg_Buf[4] = 10; // + 75 2 Seg_Buf[5] = T_value / 10 % 10; + 76 2 Seg_Buf[6] = T_value % 10; + 77 2 Seg_Buf[7] = 12; // C + 78 2 } + 79 1 } + 80 + 81 /* LED */ + 82 void Led_Proc() + 83 { + 84 1 if (Work_time) + 85 1 { + 86 2 // ʱûн + 87 2 ucLed[0] = (Work_mode == 0); + 88 2 ucLed[1] = (Work_mode == 1); + 89 2 ucLed[2] = (Work_mode == 2); + 90 2 } + 91 1 else + 92 1 memset(ucLed, 0, 3); + 93 1 } + 94 + 95 /* ʱ0жϳʼ */ + 96 void Timer0_Init(void) // 1@12.000MHz + 97 { + 98 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 99 1 TMOD &= 0xF0; // öʱģʽ + 100 1 TL0 = 0x18; // öʱʼֵ + 101 1 TH0 = 0xFC; // öʱʼֵ + 102 1 TF0 = 0; // TF0־ + 103 1 TR0 = 1; // ʱ0ʼʱ + 104 1 ET0 = 1; + 105 1 EA = 1; + 106 1 } + 107 + 108 void Timer1_Init(void) // 100΢@12.000MHz + 109 { + 110 1 AUXR |= 0x40; // ʱʱ1Tģʽ + 111 1 TMOD &= 0x0F; // öʱģʽ + 112 1 TL1 = 0x50; // öʱʼֵ + 113 1 TH1 = 0xFB; // öʱʼֵ + 114 1 TF1 = 0; // TF1־ + 115 1 TR1 = 1; // ʱ1ʼʱ + 116 1 ET1 = 1; // ʹܶʱ1ж + C51 COMPILER V9.59.0.0 MAIN 03/28/2024 20:26:04 PAGE 3 + + 117 1 } + 118 + 119 /* ʱ0жϺ */ + 120 void Timer0_ISR(void) interrupt 1 + 121 { + 122 1 if (++Key_Slow_Down == 10) + 123 1 Key_Slow_Down = 0; + 124 1 if (++Seg_Slow_Down == 500) + 125 1 Seg_Slow_Down = 0; + 126 1 if (++Seg_Pos == 8) + 127 1 Seg_Pos = 0; + 128 1 if (Work_time) + 129 1 { + 130 2 if (++time_1s == 1000) + 131 2 { + 132 3 time_1s = 0; + 133 3 Work_time--; + 134 3 } + 135 2 } + 136 1 // ֹ趨ֲ1sbug + 137 1 else + 138 1 { + 139 2 time_1s = 0; + 140 2 } + 141 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 142 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 143 1 } + 144 void Timer1_Isr(void) interrupt 3 + 145 { + 146 1 // ʱûΪ0ʱ + 147 1 if (Work_time) + 148 1 { + 149 2 if (++time_1ms == 10) + 150 2 time_1ms = 0; + 151 2 // ʱСǵʱ򣬾ߵƽ͵ƽռձ + 152 2 if (time_1ms < Work_mode_P34[Work_mode]) + 153 2 P34 = 1; + 154 2 else + 155 2 P34 = 0; + 156 2 } + 157 1 // ʱ㣬Ϊ˱bugǰȫ + 158 1 else + 159 1 { + 160 2 time_1ms = 0; + 161 2 P34 = 0; + 162 2 } + 163 1 } + 164 + 165 void Delay750ms(void) //@12.000MHz + 166 { + 167 1 unsigned char data i, j, k; + 168 1 + 169 1 _nop_(); + 170 1 _nop_(); + 171 1 i = 35; + 172 1 j = 51; + 173 1 k = 182; + 174 1 do + 175 1 { + 176 2 do + 177 2 { + 178 3 while (--k) + C51 COMPILER V9.59.0.0 MAIN 03/28/2024 20:26:04 PAGE 4 + + 179 3 ; + 180 3 } while (--j); + 181 2 } while (--i); + 182 1 } + 183 + 184 void main() + 185 { + 186 1 System_Init(); + 187 1 Timer0_Init(); + 188 1 Timer1_Init(); + 189 1 rd_temperature(); + 190 1 Delay750ms(); + 191 1 while (1) + 192 1 { + 193 2 Key_Proc(); + 194 2 Seg_Proc(); + 195 2 Led_Proc(); + 196 2 } + 197 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 575 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 43 ---- + IDATA SIZE = ---- ---- + BIT SIZE = 1 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/onewire.lst b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/onewire.lst new file mode 100644 index 0000000..747b1de --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/onewire.lst @@ -0,0 +1,125 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 03/28/2024 20:26:04 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit DQ = P1 ^ 4; // 单总线数据口 + 10 void Delay4us(void) //@12.000MHz + 11 { + 12 1 unsigned char data i; + 13 1 + 14 1 _nop_(); + 15 1 _nop_(); + 16 1 i = 9; + 17 1 while (--i) + 18 1 ; + 19 1 } + 20 + 21 // + 22 void Delay_OneWire(unsigned int t) + 23 { + 24 1 unsigned char i; + 25 1 while (t--) + 26 1 { + 27 2 for (i = 0; i < 12; i++) + 28 2 ; + 29 2 } + 30 1 } + 31 + 32 // + 33 void Write_DS18B20(unsigned char dat) + 34 { + 35 1 unsigned char i; + 36 1 for (i = 0; i < 8; i++) + 37 1 { + 38 2 DQ = 0; + 39 2 DQ = dat & 0x01; + 40 2 Delay_OneWire(5); + 41 2 DQ = 1; + 42 2 dat >>= 1; + 43 2 } + 44 1 Delay_OneWire(5); + 45 1 } + 46 + 47 // + 48 unsigned char Read_DS18B20(void) + 49 { + 50 1 unsigned char i; + 51 1 unsigned char dat; + 52 1 + 53 1 for (i = 0; i < 8; i++) + C51 COMPILER V9.59.0.0 ONEWIRE 03/28/2024 20:26:04 PAGE 2 + + 54 1 { + 55 2 DQ = 0; + 56 2 dat >>= 1; + 57 2 DQ = 1; + 58 2 Delay4us(); + 59 2 if (DQ) + 60 2 { + 61 3 dat |= 0x80; + 62 3 } + 63 2 Delay_OneWire(5); + 64 2 } + 65 1 return dat; + 66 1 } + 67 + 68 // + 69 bit init_ds18b20(void) + 70 { + 71 1 bit initflag = 0; + 72 1 + 73 1 DQ = 1; + 74 1 Delay_OneWire(12); + 75 1 DQ = 0; + 76 1 Delay_OneWire(80); + 77 1 DQ = 1; + 78 1 Delay_OneWire(10); + 79 1 initflag = DQ; + 80 1 Delay_OneWire(5); + 81 1 + 82 1 return initflag; + 83 1 } + 84 + 85 float rd_temperature() + 86 { + 87 1 unsigned char low, high; + 88 1 init_ds18b20(); + 89 1 Write_DS18B20(0xcc); // 跳过ROM + 90 1 Write_DS18B20(0x44); // 启动温度转换 + 91 1 Delay_OneWire(200); // 等待温度转换 + 92 1 init_ds18b20(); + 93 1 Write_DS18B20(0xcc); // 跳过ROM + 94 1 Write_DS18B20(0xbe); // 读取温度值 + 95 1 low = Read_DS18B20(); + 96 1 high = Read_DS18B20(); + 97 1 return (float)(high << 8 | low) * 0.0625; + 98 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 212 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/zuolan.m51 b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/zuolan.m51 new file mode 100644 index 0000000..eb6807d --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Listings/zuolan.m51 @@ -0,0 +1,740 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\onewire.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\onewire.obj (ONEWIRE) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0015H UNIT ?DT?SEG + DATA 001DH 0002H UNIT ?DT?LED + 001FH 0001H *** GAP *** + BIT 0020H.0 0000H.1 UNIT ?BI?MAIN + BIT 0020H.1 0000H.1 UNIT _BIT_GROUP_ + 0020H.2 0000H.6 *** GAP *** + DATA 0021H 002BH UNIT ?DT?MAIN + IDATA 004CH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0007H UNIT ?PR?DELAY4US?ONEWIRE + 000AH 0001H *** GAP *** + CODE 000BH 0003H ABSOLUTE + 000EH 000DH *** GAP *** + CODE 001BH 0003H ABSOLUTE + CODE 001EH 0254H UNIT ?C?LIB_CODE + CODE 0272H 009FH UNIT ?PR?TIMER0_ISR?MAIN + CODE 0311H 008CH UNIT ?C_C51STARTUP + CODE 039DH 007AH UNIT ?PR?KEY_READ?KEY + CODE 0417H 0074H UNIT ?PR?SEG_PROC?MAIN + CODE 048BH 005FH UNIT ?PR?KEY_PROC?MAIN + CODE 04EAH 0048H UNIT ?C_INITSEG + CODE 0532H 0040H UNIT ?PR?LED_PROC?MAIN + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 2 + + + CODE 0572H 003CH UNIT ?PR?TIMER1_ISR?MAIN + CODE 05AEH 003BH UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 05E9H 003AH UNIT ?PR?_LED_DISP?LED + CODE 0623H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 0659H 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 0680H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 06A7H 0026H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 06CDH 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 06EBH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0708H 001AH UNIT ?PR?MAIN?MAIN + CODE 0722H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0737H 0013H UNIT ?PR?TIMER1_INIT?MAIN + CODE 074AH 000FH UNIT ?PR?DELAY750MS?MAIN + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP + +--> CALLED SEGMENT START LENGTH +-------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?TIMER1_INIT?MAIN + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.1 0000H.1 + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- + +--> ?PR?DELAY4US?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 3 + + + +?PR?KEY_PROC?MAIN ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN ----- ----- + +--> ?PR?RD_TEMPERATURE?ONEWIRE + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:0272H PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0532H PUBLIC Led_Proc + D:0025H PUBLIC Seg_Point + D:00A8H PUBLIC IE + C:0417H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:002DH PUBLIC Seg_Buf + C:048BH PUBLIC Key_Proc + D:0035H PUBLIC Seg_Slow_Down + D:0036H PUBLIC time_1ms + D:00D8H PUBLIC CCON + C:0708H PUBLIC main + C:0722H PUBLIC Timer0_Init + C:0737H PUBLIC Timer1_Init + D:0037H PUBLIC Work_mode + D:0038H PUBLIC Key_Slow_Down + D:0039H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:003AH PUBLIC time_mode_index + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:003BH PUBLIC time_1s + D:003DH PUBLIC Work_time + B:00B0H.4 PUBLIC P34 + D:003EH PUBLIC time_mode + D:008EH PUBLIC AUXR + C:0572H PUBLIC Timer1_Isr + D:0041H PUBLIC Work_mode_P34 + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + B:00A8H.3 PUBLIC ET1 + B:0088H.7 PUBLIC TF1 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 4 + + + B:0020H.0 PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008DH PUBLIC TH1 + D:008AH PUBLIC TL0 + D:008BH PUBLIC TL1 + B:0088H.4 PUBLIC TR0 + B:0088H.6 PUBLIC TR1 + D:0044H PUBLIC ucLed + C:074AH PUBLIC Delay750ms + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:048BH LINE# 26 + C:048BH LINE# 27 + C:048BH LINE# 29 + C:048FH LINE# 31 + C:0492H LINE# 33 + C:0497H LINE# 34 + C:04A0H LINE# 35 + C:04A6H LINE# 36 + C:04A9H LINE# 38 + C:04B2H LINE# 39 + C:04BDH LINE# 40 + C:04C3H LINE# 41 + C:04C3H LINE# 42 + C:04CEH LINE# 43 + C:04D6H LINE# 44 + C:04D6H LINE# 45 + C:04DCH LINE# 46 + C:04DEH LINE# 47 + C:04E4H LINE# 48 + C:04E9H LINE# 49 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:0007H SYMBOL T_value + ------- ENDDO + C:0417H LINE# 51 + C:0417H LINE# 52 + C:0417H LINE# 54 + C:041BH LINE# 56 + C:041EH LINE# 57 + C:0421H LINE# 58 + C:0424H LINE# 59 + C:0427H LINE# 60 + C:042DH LINE# 61 + C:0430H LINE# 62 + C:0430H LINE# 64 + C:0435H LINE# 65 + C:0449H LINE# 66 + C:0456H LINE# 67 + C:0463H LINE# 68 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 5 + + + C:046CH LINE# 69 + C:046DH LINE# 71 + C:046DH LINE# 73 + C:0470H LINE# 74 + C:0473H LINE# 75 + C:047FH LINE# 76 + C:0487H LINE# 77 + C:048AH LINE# 78 + C:048AH LINE# 79 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0532H LINE# 82 + C:0532H LINE# 83 + C:0532H LINE# 84 + C:0536H LINE# 85 + C:0536H LINE# 87 + C:0545H LINE# 88 + C:0553H LINE# 89 + C:0561H LINE# 90 + C:0562H LINE# 92 + C:0571H LINE# 93 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:0722H LINE# 96 + C:0722H LINE# 97 + C:0722H LINE# 98 + C:0725H LINE# 99 + C:0728H LINE# 100 + C:072BH LINE# 101 + C:072EH LINE# 102 + C:0730H LINE# 103 + C:0732H LINE# 104 + C:0734H LINE# 105 + C:0736H LINE# 106 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER1_INIT + C:0737H LINE# 108 + C:0737H LINE# 109 + C:0737H LINE# 110 + C:073AH LINE# 111 + C:073DH LINE# 112 + C:0740H LINE# 113 + C:0743H LINE# 114 + C:0745H LINE# 115 + C:0747H LINE# 116 + C:0749H LINE# 117 + ------- ENDPROC TIMER1_INIT + ------- PROC TIMER0_ISR + C:0272H LINE# 120 + C:028FH LINE# 122 + C:0297H LINE# 123 + C:0299H LINE# 124 + C:02A5H LINE# 125 + C:02A8H LINE# 126 + C:02B0H LINE# 127 + C:02B2H LINE# 128 + C:02B6H LINE# 129 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 6 + + + C:02B6H LINE# 130 + C:02C7H LINE# 131 + C:02C7H LINE# 132 + C:02CDH LINE# 133 + C:02CFH LINE# 134 + C:02CFH LINE# 135 + C:02D1H LINE# 138 + C:02D1H LINE# 139 + C:02D7H LINE# 140 + C:02D7H LINE# 141 + C:02EAH LINE# 142 + C:02F6H LINE# 143 + ------- ENDPROC TIMER0_ISR + ------- PROC TIMER1_ISR + C:0572H LINE# 144 + C:057DH LINE# 147 + C:0581H LINE# 148 + C:0581H LINE# 149 + C:0589H LINE# 150 + C:058BH LINE# 152 + C:0598H LINE# 153 + C:059CH LINE# 155 + C:059EH LINE# 156 + C:05A0H LINE# 159 + C:05A0H LINE# 160 + C:05A3H LINE# 161 + C:05A5H LINE# 162 + C:05A5H LINE# 163 + ------- ENDPROC TIMER1_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:074AH LINE# 165 + C:074AH LINE# 166 + C:074AH LINE# 169 + C:074BH LINE# 170 + C:074CH LINE# 171 + C:074EH LINE# 172 + C:0750H LINE# 173 + C:0752H LINE# 175 + C:0752H LINE# 177 + C:0752H LINE# 178 + C:0754H LINE# 180 + C:0756H LINE# 181 + C:0758H LINE# 182 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:0708H LINE# 184 + C:0708H LINE# 185 + C:0708H LINE# 186 + C:070BH LINE# 187 + C:070EH LINE# 188 + C:0711H LINE# 189 + C:0714H LINE# 190 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 7 + + + C:0717H LINE# 191 + C:0717H LINE# 192 + C:0717H LINE# 193 + C:071AH LINE# 194 + C:071DH LINE# 195 + C:0720H LINE# 196 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:05E9H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:001DH SYMBOL temp + D:001EH SYMBOL temp_old + ------- ENDDO + C:05E9H LINE# 5 + C:05E9H LINE# 6 + C:05E9H LINE# 10 + C:05ECH LINE# 11 + C:05FBH LINE# 13 + C:0609H LINE# 14 + C:060FH LINE# 15 + C:060FH LINE# 16 + C:0614H LINE# 17 + C:061CH LINE# 18 + C:061FH LINE# 19 + C:0622H LINE# 20 + C:0622H LINE# 21 + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 8 + + + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0623H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0015H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:0623H LINE# 7 + C:0623H LINE# 8 + C:0623H LINE# 10 + C:0626H LINE# 11 + C:062EH LINE# 14 + C:0635H LINE# 15 + C:063DH LINE# 16 + C:0640H LINE# 19 + C:0647H LINE# 20 + C:064AH LINE# 21 + C:064DH LINE# 22 + C:0655H LINE# 23 + C:0658H LINE# 24 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:039DH PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 9 + + + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:039DH LINE# 2 + C:039DH LINE# 3 + C:039DH LINE# 4 + C:039FH LINE# 5 + C:03A1H LINE# 6 + C:03A3H LINE# 7 + C:03A5H LINE# 8 + C:03A7H LINE# 9 + C:03A9H LINE# 10 + C:03ACH LINE# 11 + C:03AEH LINE# 12 + C:03B1H LINE# 13 + C:03B3H LINE# 14 + C:03B6H LINE# 15 + C:03B8H LINE# 16 + C:03BBH LINE# 17 + C:03BDH LINE# 18 + C:03BFH LINE# 19 + C:03C1H LINE# 20 + C:03C3H LINE# 21 + C:03C5H LINE# 22 + C:03C8H LINE# 23 + C:03CAH LINE# 24 + C:03CDH LINE# 25 + C:03CFH LINE# 26 + C:03D2H LINE# 27 + C:03D4H LINE# 28 + C:03D7H LINE# 29 + C:03D9H LINE# 30 + C:03DBH LINE# 31 + C:03DDH LINE# 32 + C:03DFH LINE# 33 + C:03E1H LINE# 34 + C:03E4H LINE# 35 + C:03E6H LINE# 36 + C:03E9H LINE# 37 + C:03EBH LINE# 38 + C:03EEH LINE# 39 + C:03F0H LINE# 40 + C:03F3H LINE# 41 + C:03F5H LINE# 42 + C:03F7H LINE# 43 + C:03F9H LINE# 44 + C:03FBH LINE# 45 + C:03FDH LINE# 46 + C:0400H LINE# 47 + C:0402H LINE# 48 + C:0405H LINE# 49 + C:0407H LINE# 50 + C:040AH LINE# 51 + C:040CH LINE# 52 + C:040FH LINE# 53 + C:0411H LINE# 54 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 10 + + + C:0413H LINE# 55 + C:0416H LINE# 56 + C:0416H LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:06EBH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:06EBH LINE# 3 + C:06EBH LINE# 4 + C:06EBH LINE# 5 + C:06EEH LINE# 6 + C:06F6H LINE# 7 + C:06F9H LINE# 9 + C:06FCH LINE# 10 + C:0704H LINE# 11 + C:0707H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:06A7H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:06D1H PUBLIC _Delay_OneWire + C:0003H PUBLIC Delay4us + C:0659H PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:0680H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:05AEH PUBLIC rd_temperature + D:00D0H PUBLIC PSW + ------- PROC DELAY4US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 11 + + + C:0003H LINE# 10 + C:0003H LINE# 11 + C:0003H LINE# 14 + C:0004H LINE# 15 + C:0005H LINE# 16 + C:0007H LINE# 17 + C:0009H LINE# 19 + ------- ENDPROC DELAY4US + C:06CDH SYMBOL L?0023 + ------- PROC L?0022 + ------- ENDPROC L?0022 + C:06CDH SYMBOL L?0023 + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:06D1H LINE# 22 + C:06D1H LINE# 23 + C:06D1H LINE# 25 + C:06DBH LINE# 26 + C:06DBH LINE# 27 + C:06EAH LINE# 29 + C:06EAH LINE# 30 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:0659H LINE# 33 + C:065BH LINE# 34 + C:065BH LINE# 36 + C:0667H LINE# 37 + C:0667H LINE# 38 + C:0669H LINE# 39 + C:066DH LINE# 40 + C:0670H LINE# 41 + C:0672H LINE# 42 + C:0676H LINE# 43 + C:0679H LINE# 44 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:06A7H LINE# 48 + C:06A7H LINE# 49 + C:06A7H LINE# 53 + C:06B3H LINE# 54 + C:06B3H LINE# 55 + C:06B5H LINE# 56 + C:06B9H LINE# 57 + C:06BBH LINE# 58 + C:06BEH LINE# 59 + C:06C1H LINE# 60 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 12 + + + C:06C1H LINE# 61 + C:06C4H LINE# 62 + C:06C4H LINE# 63 + C:06C7H LINE# 64 + C:06CAH LINE# 65 + C:06CCH LINE# 66 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.1 SYMBOL initflag + ------- ENDDO + C:0680H LINE# 69 + C:0680H LINE# 70 + C:0680H LINE# 71 + C:0682H LINE# 73 + C:0684H LINE# 74 + C:068BH LINE# 75 + C:068DH LINE# 76 + C:0694H LINE# 77 + C:0696H LINE# 78 + C:069DH LINE# 79 + C:06A1H LINE# 80 + C:06A4H LINE# 82 + C:06A6H LINE# 83 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:05AEH LINE# 85 + C:05AEH LINE# 86 + C:05AEH LINE# 88 + C:05B1H LINE# 89 + C:05B6H LINE# 90 + C:05BBH LINE# 91 + C:05C2H LINE# 92 + C:05C5H LINE# 93 + C:05CAH LINE# 94 + C:05CFH LINE# 95 + C:05D4H LINE# 96 + C:05D7H LINE# 97 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ?C?FPMUL + C:001EH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:012EH PUBLIC ?C?FCASTC + C:0129H PUBLIC ?C?FCASTI + C:0124H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0162H PUBLIC ?C?CASTF + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/28/2024 20:26:04 PAGE 13 + + + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?UIDIV + C:01E3H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:0238H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + + ------- MODULE ?C?MEMSET + C:0246H PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET + +Program Size: data=75.2 xdata=0 code=1867 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Init.obj b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Init.obj new file mode 100644 index 0000000..1c8b611 Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Init.obj differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Key.obj b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Key.obj new file mode 100644 index 0000000..360c497 Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Key.obj differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Led.obj b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Led.obj new file mode 100644 index 0000000..6f3e4f2 Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Led.obj differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Seg.obj b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Seg.obj new file mode 100644 index 0000000..e02d734 Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Seg.obj differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Uart.obj b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Uart.obj differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Ultrasonic.obj b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/Ultrasonic.obj differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/ds1302.obj b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/ds1302.obj differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/iic.obj b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/iic.obj new file mode 100644 index 0000000..88a47fa Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/iic.obj differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/main.obj b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/main.obj new file mode 100644 index 0000000..8ae9b8e Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/main.obj differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/onewire.obj b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/onewire.obj new file mode 100644 index 0000000..f587438 Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/onewire.obj differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan new file mode 100644 index 0000000..0bbccbb Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan differ diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan.build_log.htm b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..3294030 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan.build_log.htm @@ -0,0 +1,41 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 + Target DLL: VDM51.DLL +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\demo_zuolan\User\zuolan.uvproj +Project File Date: 03/28/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling onewire.c... +linking... +Program Size: data=75.2 xdata=0 code=1867 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan.hex b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan.hex new file mode 100644 index 0000000..523da0b --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan.hex @@ -0,0 +1,145 @@ +:1004EA0008440000000000000000082D0A0A0A0A59 +:1004FA000A0A0A0A08250000000000000000033E5C +:08050A00003C780341020307E5 +:10048B00E538705A75380112039D8F21E5246521DB +:10049B00FF5521F522E521F45FF523852124AF22B9 +:1004AB007E00EF6404700B0537E53775F003848528 +:1004BB00F037EF64054E7013053AE53A75F0038497 +:1004CB0085F03A743E253AF8E6F53DE52264067070 +:0E04DB0002F53DE52264077005A200B3920011 +:0104E90022F0 +:10041700E535706F753501752D0B752F0B75300A26 +:100427001205AE12016220003DE53704F52EAF3DFF +:100437007E007C037DE81201E37C007D0A1201E364 +:100447008D31E53D75F0648475F00A8485F032E5F9 +:100457003D75F00A8475F00A8485F033E53D75F043 +:100467000A8485F03422752E0475310AEF75F00A77 +:100477008475F00A8485F032EF75F00A8485F033CD +:0304870075340CBD +:01048A00224F +:10053200E53D602CAF377E00EF70047D0180027DC7 +:10054200008D44EF64014E70047F0180027F008FB2 +:1005520045E537640270047F0180027F008F4622E6 +:100562007E007F037D007B007A00794412024622DE +:10072200538E7F5389F0758A18758CFCC28DD28CDA +:05073200D2A9D2AF22A4 +:10073700438E4053890F758B50758DFBC28FD28EB8 +:03074700D2AB2210 +:03000B000202727C +:10027200C0E0C0F0C083C082C0D075D000C000C052 +:1002820001C002C003C004C005C006C0070538E5AE +:1002920038640A7002F5380535AF357E00BE0106B6 +:1002A200BFF4037535000539E53964087002F53984 +:1002B200E53D601B053CE53C7002053BFFAE3BBEE5 +:1002C2000313BFE810753B00753C00153D800675B1 +:1002D2003B00753C00742D2539F8E6FD742525395F +:1002E200F8E6FBAF3912062374442539F8E6FDAF70 +:1002F200391205E9D007D006D005D004D003D002C8 +:0F030200D001D000D0D0D082D083D0F0D0E03264 +:03001B0002057269 +:10057200C0E0C0D075D000C000C007E53D601F05D7 +:1005820036E536640A7002F53674412537F8E6FF1F +:10059200E536C39F5004D2B48009C2B480057536D3 +:0C05A20000C2B4D007D000D0D0D0E032AE +:0E074A0000007F237E337DB6DDFEDEFCDFFA8D +:01075800227E +:100708001206EB1207221207371205AE12074A1219 +:0A071800048B12041712053280F55D +:06051200011D00011EFFA7 +:1005E900ED600FA8077401088002C333D8FC421DCF +:1005F900800EA8077401088002C333D8FCF4521D89 +:10060900E51D651E6013E51DF4F580E5A0541F4442 +:0906190080F5A053A01F851D1EF1 +:0106220022B5 +:100518000D08C0F9A4B0999282F88090FFBFC60870 +:09052800150102040810204080B6 +:100623007580FFE5A0541F44E0F5A074152FF8E68C +:10063300F580E5A0541F44C0F5A053A01F74082DF6 +:10064300F8E6F580EB600353807FE5A0541F44E098 +:06065300F5A053A01F22D8 +:10039D00E4FFC2A9C2C4D2C2D2B5D2B420B3027F87 +:1003AD000420B2027F0520B1027F0620B0027F0734 +:1003BD00D2C4C2C2D2B5D2B420B3027F0820B202D9 +:1003CD007F0920B1027F0A20B0027F0BD2C4D2C2B6 +:1003DD00C2B5D2B420B3027F0C20B2027F0D20B182 +:1003ED00027F0E20B0027F0FD2C4D2C2D2B5C2B4EA +:1003FD0020B3027F1020B2027F1120B1027F1220A4 +:09040D00B0027F13D2A975B0FF03 +:0104160022C3 +:1006EB007580FFE5A0541F4480F5A053A01FE4F5CF +:0D06FB0080E5A0541F44A0F5A053A01F22CD +:0600030000007F09DFFE92 +:0100090022D4 +:0406CD007F057E0027 +:1006D100EF1FAA0670011E4A600FE4FDEDC3940CE2 +:0906E1007480948050EA0D80F34E +:0106EA0022ED +:02065900A907EF +:10065B00E4FBEBC39408748094805012C294E913AA +:10066B0092941206CDD294E9C313F90B80E47F0563 +:05067B007E000206D123 +:1006A700E4FBEBC39408748094805017C294ECC3A6 +:1006B70013FCD2941200033094034304801206CD36 +:0506C7000B80DFAF0411 +:0106CC00220B +:10068000C201D2947F0C7E001206D1C2947F507EAC +:10069000001206D1D2947F0A7E001206D1A2949253 +:0606A000011206CDA201CB +:0106A6002231 +:1005AE001206807FCC1206597F441206597FC87EF0 +:1005BE00001206D11206807FCC1206597FBE12069B +:1005CE00591206A7A9071206A7EFAD01FCEC1201FE +:0B05DE0029E4FBFA7980783D02001E42 +:10001E00EC4D6011E8497017ED33EC3304600DE4DC +:10002E00FCFFFEFD22E933E8330470F80201CE1224 +:10003E00019958046009E4CC248150062850090225 +:10004E0001D82840030201D5C0E0EB4A7044B980C4 +:10005E0006D0E0FB0201C4EF4E701CBD8008EBFF22 +:10006E00EAFEE9FD80EBE98DF0A4FEE5F002010762 +:10007E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89BD +:10008E00F0A42EFFE435F0CD89F0A42DFEE435F07A +:10009E008067EF4E7005BD80D780C3EF8BF0A4ACA8 +:1000AE00F0EE8BF0A42CFCE435F0F8EF8AF0A42CE3 +:1000BE00E5F038FCE433CB8DF0A42CFCE5F03BF8F6 +:1000CE00EE8AF0A42CFCE5F038F8E433CF89F0A4E6 +:1000DE002CFCE5F038CF3400CE89F0A42FFFE5F0EC +:1000EE003EFEE433C98DF0A42EFEE5F039CD8AF044 +:1000FE00A42FFFE5F03EFEE43DFD33D0E0FB5007BC +:10010E000BBB000F0201D8EC2CFCEF33FFEE33FEDD +:06011E00ED33FD0201B00B +:1001240075F020800E75F010800575F0087D007E56 +:10013400007F003392D530D503120238EC334010DF +:10014400EF33FFEE33FEED33FDEC33FCD5F0ED225F +:0E015400E5F0247EA2D513CC92E7CDCEFF229B +:10016200EDD2E7CD33EC3392D524814006E4FFFE95 +:10017200FDFC22FCE4CFCECDCC24E0501174FF80F4 +:10018200EDC3CC13CCCD13CDCE13CECF13CF047091 +:07019200F030D5DE02023857 +:10019900E9D2E7C933E833F892D5EDD2E7CD33ECAC +:0701A90033FC5002B2D52225 +:1001B000EC30E7100FBF000C0EBE00080DBD0004B0 +:1001C0000BEB6014A2D5EB13FCED92E7FD2274FF5C +:1001D000FCFDFEFF22E480F8A2D574FF13FC7D80B5 +:0301E000E480EFC9 +:03000000020311E7 +:0C031100787FE4F6D8FD75814B0203589C +:1001E300BC000BBE0029EF8DF084FFADF022E4CC00 +:1001F300F875F008EF2FFFEE33FEEC33FCEE9DECC9 +:10020300984005FCEE9DFE0FD5F0E9E4CEFD22ED0E +:10021300F8F5F0EE8420D21CFEADF075F008EF2F58 +:10022300FFED33FD4007985006D5F0F222C398FD49 +:050233000FD5F0EA22E6 +:0E023800C3E49FFFE49EFEE49DFDE49CFC22D7 +:10024600EF4E6012EF60010EEDBB010B89828A83CF +:10025600F0A3DFFCDEFA2289F05007F709DFFCA9DC +:0C026600F022BBFEFCF309DFFCA9F02233 +:10031D00020708E493A3F8E493A34003F68001F2E7 +:10032D0008DFF48029E493A3F85407240CC8C333E1 +:10033D00C4540F4420C8834004F456800146F6DFB0 +:10034D00E4800B01020408102040809004EAE47E52 +:10035D00019360BCA3FF543F30E509541FFEE493A5 +:10036D00A360010ECF54C025E060A840B8E493A36C +:10037D00FAE493A3F8E493A3C8C582C8CAC583CA97 +:10038D00F0A3C8C582C8CAC583CADFE9DEE780BE4F +:0105310000C9 +:00000001FF diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan.lnp b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan.lnp new file mode 100644 index 0000000..fb26e4b --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/Objects/zuolan.lnp @@ -0,0 +1,8 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\onewire.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/main.c b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/main.c new file mode 100644 index 0000000..34d08cd --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/main.c @@ -0,0 +1,197 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ̷ */ +uchar Key_Slow_Down; + +/* */ +uchar Work_mode; // 0 ˯߷20 1 Ȼ30 2 70 +bit Seg_show_mode; // 0 ʾ 1 ʾ¶ + +/* ʱ */ +uchar Work_time; // ʱ +uchar time_mode_index; // 0->0 1->1 2->2 +uchar time_mode[3] = {0, 60, 120}; +uchar Work_mode_P34[3] = {2, 3, 7}; +uchar time_1ms; +uint time_1s; +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + + if (Key_Down == 4) + Work_mode = (++Work_mode) % 3; + if (Key_Down == 5) + { + time_mode_index = (++time_mode_index) % 3; + Work_time = time_mode[time_mode_index]; + } + if (Key_Down == 6) + Work_time = 0; + if (Key_Down == 7) + Seg_show_mode ^= 1; +} +/* ܴ */ +void Seg_Proc() +{ + uchar T_value; + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + Seg_Buf[0] = 11; //- + Seg_Buf[2] = 11; //- + Seg_Buf[3] = 10; // + T_value = rd_temperature(); + if (Seg_show_mode == 0) + { + // Ƿʾҳ + Seg_Buf[1] = Work_mode + 1; + Seg_Buf[4] = Work_time / 1000 % 10; + Seg_Buf[5] = Work_time / 100 % 10; + Seg_Buf[6] = Work_time / 10 % 10; + Seg_Buf[7] = Work_time % 10; + } + else + { + // ¶ʾҳ + Seg_Buf[1] = 4; + Seg_Buf[4] = 10; // + Seg_Buf[5] = T_value / 10 % 10; + Seg_Buf[6] = T_value % 10; + Seg_Buf[7] = 12; // C + } +} + +/* LED */ +void Led_Proc() +{ + if (Work_time) + { + // ʱûн + ucLed[0] = (Work_mode == 0); + ucLed[1] = (Work_mode == 1); + ucLed[2] = (Work_mode == 2); + } + else + memset(ucLed, 0, 3); +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +void Timer1_Init(void) // 100΢@12.000MHz +{ + AUXR |= 0x40; // ʱʱ1Tģʽ + TMOD &= 0x0F; // öʱģʽ + TL1 = 0x50; // öʱʼֵ + TH1 = 0xFB; // öʱʼֵ + TF1 = 0; // TF1־ + TR1 = 1; // ʱ1ʼʱ + ET1 = 1; // ʹܶʱ1ж +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 500) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (Work_time) + { + if (++time_1s == 1000) + { + time_1s = 0; + Work_time--; + } + } + // ֹ趨ֲ1sbug + else + { + time_1s = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} +void Timer1_Isr(void) interrupt 3 +{ + // ʱûΪ0ʱ + if (Work_time) + { + if (++time_1ms == 10) + time_1ms = 0; + // ʱСǵʱ򣬾ߵƽ͵ƽռձ + if (time_1ms < Work_mode_P34[Work_mode]) + P34 = 1; + else + P34 = 0; + } + // ʱ㣬Ϊ˱bugǰȫ + else + { + time_1ms = 0; + P34 = 0; + } +} + +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} + +void main() +{ + System_Init(); + Timer0_Init(); + Timer1_Init(); + rd_temperature(); + Delay750ms(); + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/main.h b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/main.h new file mode 100644 index 0000000..07e422a --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/main.h @@ -0,0 +1,10 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "onewire.h" +#include "Init.h" +#include "INTRINS.H" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/zuolan.uvgui.haze b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/zuolan.uvgui.haze new file mode 100644 index 0000000..9f1d3d4 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/zuolan.uvgui.haze @@ -0,0 +1,1369 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 2 + 3 + + -32000 + -32024 + + + -1 + -1 + + + 250 + 404 + 1556 + 738 + + + + 0 + + 310 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF2D433A5C55736572735C68617A655C4465736B746F705C64656D6F5F7A756F6C616E5C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E000000000600002D020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100007E00000070040000EB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000001602000000060000E5020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000EB000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000CF010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000FE010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100004E020000000000004F00000090010000FE0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000BF01000070040000400200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FE010000000600000202000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000520200000006000035030000000000000202000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2002 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 1 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 27 + 48 + 61 + 1 + + 0 + + + + +
diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/zuolan.uvopt b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/zuolan.uvopt new file mode 100644 index 0000000..879de43 --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/zuolan.uvopt @@ -0,0 +1,245 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + -1 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + +
diff --git a/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/zuolan.uvproj b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/zuolan.uvproj new file mode 100644 index 0000000..6e9134f --- /dev/null +++ b/题目/真题/7 第七届省赛_左岚/test7省赛_左岚/User/zuolan.uvproj @@ -0,0 +1,405 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + -1 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + + + + + +
diff --git a/题目/真题/7 第七届省赛_左岚/第7届省赛-模拟风扇控制系统..pdf b/题目/真题/7 第七届省赛_左岚/第7届省赛-模拟风扇控制系统..pdf new file mode 100644 index 0000000..bd92376 Binary files /dev/null and b/题目/真题/7 第七届省赛_左岚/第7届省赛-模拟风扇控制系统..pdf differ diff --git a/题目/真题/8 第八届国赛_左岚/第8届决赛-超声波测距机的功能设计.pdf b/题目/真题/8 第八届国赛_左岚/第8届决赛-超声波测距机的功能设计.pdf new file mode 100644 index 0000000..f20d3bd Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第8届决赛-超声波测距机的功能设计.pdf differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/.vscode/settings.json b/题目/真题/8 第八届国赛_左岚/第八届国赛/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Init.c b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Init.h b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Key.c b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Key.h b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Led.c b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Led.c new file mode 100644 index 0000000..4749a48 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Led.c @@ -0,0 +1,21 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Led.h b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Led.h new file mode 100644 index 0000000..a560cef --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Led.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Seg.c b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Seg.c new file mode 100644 index 0000000..4762df7 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 F +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0x86}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Seg.h b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Ultrasonic.c b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Ultrasonic.c new file mode 100644 index 0000000..33abcc4 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Ultrasonic.c @@ -0,0 +1,56 @@ +#include "Ultrasonic.h" +#include "intrins.h" + +sbit Tx = P1 ^ 0; +sbit Rx = P1 ^ 1; +void Delay12us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 33; // 38 + while (--i) + ; +} + +void Ut_Wave_Init() +{ + unsigned char i; + // 840kHzķ + // f=40kHz->T=1/f=0.000025s=25us + // 12.5us 1 12.5us 0 + for (i = 0; i < 8; i++) + { + Tx = 1; + Delay12us(); + Tx = 0; + Delay12us(); + } +} + +unsigned char Ut_Wave_Data() +{ + unsigned int time; + CH = CL = 0; // PCAĴֵ + CCON = 0; // ʼPCAƼĴ/PCAʱֹͣ/CF/ + + EA = 0; // رж + Ut_Wave_Init(); // ͳź + EA = 1; // ж + CR = 1; // PCAʼ + while (Rx && !CF) // TF1 + ; // ȴ + CR = 0; // PCAֹͣ + if (CF == 0) + { + time = CH << 8 | CL; // λΪ + // L=V*T/2 + return (time * 0.017); // صĵλcm + } + else + { + CF = 0; + return 0; + } +} \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Ultrasonic.h b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Ultrasonic.h new file mode 100644 index 0000000..bea5589 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/Ultrasonic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.h" +unsigned char Ut_Wave_Data(); \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/iic.c b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/iic.c new file mode 100644 index 0000000..6ab9dbf --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/iic.c @@ -0,0 +1,192 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} +// 写入的值是数字值0-255,而不是模拟值 +void Da_Write(unsigned char dat) +{ + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + + I2CSendByte(0x41); + I2CWaitAck(); + I2CSendByte(dat); + I2CWaitAck(); + I2CStop(); +} + +/// @brief EEPROM 写函数 +/// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 写入的数组大小 +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); // 写入的数据的地址 + I2CWaitAck(); + while (num--) + { + I2CSendByte(*EEPROM_String++); + I2CWaitAck(); + I2C_Delay(200); + } + I2CStop(); + I2C_Delay(255); + I2C_Delay(255); + I2C_Delay(255); + I2C_Delay(255); +} +/// @brief EEPROM 读函数 +/// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) +/// @param addr 8的倍数 +/// @param num 读取的数组大小 +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) +{ + // 选择芯片为EEPROM,模式为写 + I2CStart(); + I2CSendByte(0xA0); + I2CWaitAck(); + + I2CSendByte(addr); + I2CWaitAck(); + + // 选择芯片为EEPROM,模式为读 + I2CStart(); + I2CSendByte(0xA1); + I2CWaitAck(); + while (num--) + { + *EEPROM_String++ = I2CReceiveByte(); + if (num) + I2CSendAck(0); + else + I2CSendAck(1); // 停止读取 + } + I2CStop(); +} \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/iic.h b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/iic.h new file mode 100644 index 0000000..742c2d0 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/Driver/iic.h @@ -0,0 +1,4 @@ +#include "STC15F2K60S2.H" +void Da_Write(unsigned char dat); +void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); +void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num); \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Init.lst b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Init.lst new file mode 100644 index 0000000..951289e --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 04/12/2024 14:41:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Key.lst b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Key.lst new file mode 100644 index 0000000..1299233 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 04/12/2024 14:41:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 04/12/2024 14:41:49 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Led.lst b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Led.lst new file mode 100644 index 0000000..0f83e38 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Led.lst @@ -0,0 +1,45 @@ +C51 COMPILER V9.59.0.0 LED 04/12/2024 14:41:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 58 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 2 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Seg.lst b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Seg.lst new file mode 100644 index 0000000..6bccb14 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 04/12/2024 14:41:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 F + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0x86}; + 4 // λѡ + 5 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 20 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Uart.lst b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Ultrasonic.lst b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..361a310 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/Ultrasonic.lst @@ -0,0 +1,82 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 04/12/2024 14:41:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; // 38 + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 CH = CL = 0; // PCAĴֵ + 36 1 CCON = 0; // ʼPCAƼĴ/PCAʱֹͣ/CF/ + 37 1 + 38 1 EA = 0; // رж + 39 1 Ut_Wave_Init(); // ͳź + 40 1 EA = 1; // ж + 41 1 CR = 1; // PCAʼ + 42 1 while (Rx && !CF) // TF1 + 43 1 ; // ȴ + 44 1 CR = 0; // PCAֹͣ + 45 1 if (CF == 0) + 46 1 { + 47 2 time = CH << 8 | CL; // λΪ + 48 2 // L=V*T/2 + 49 2 return (time * 0.017); // صĵλcm + 50 2 } + 51 1 else + 52 1 { + 53 2 CF = 0; + 54 2 return 0; + C51 COMPILER V9.59.0.0 ULTRASONIC 04/12/2024 14:41:49 PAGE 2 + + 55 2 } + 56 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 93 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/ds1302.lst b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/iic.lst b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/iic.lst new file mode 100644 index 0000000..98643df --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/iic.lst @@ -0,0 +1,223 @@ +C51 COMPILER V9.59.0.0 IIC 04/12/2024 14:41:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 04/12/2024 14:41:49 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 04/12/2024 14:41:49 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 // 写入的值是数字值0-255,而不是模拟值 + 126 void Da_Write(unsigned char dat) + 127 { + 128 1 // 选择芯片为PCF + 129 1 I2CStart(); + 130 1 I2CSendByte(0x90); + 131 1 I2CWaitAck(); + 132 1 + 133 1 I2CSendByte(0x41); + 134 1 I2CWaitAck(); + 135 1 I2CSendByte(dat); + 136 1 I2CWaitAck(); + 137 1 I2CStop(); + 138 1 } + 139 + 140 /// @brief EEPROM 写函数 + 141 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 142 /// @param addr 8的倍数 + 143 /// @param num 写入的数组大小 + 144 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 145 { + 146 1 // 选择芯片为EEPROM,模式为写 + 147 1 I2CStart(); + 148 1 I2CSendByte(0xA0); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(addr); // 写入的数据的地址 + 152 1 I2CWaitAck(); + 153 1 while (num--) + 154 1 { + 155 2 I2CSendByte(*EEPROM_String++); + 156 2 I2CWaitAck(); + 157 2 I2C_Delay(200); + 158 2 } + 159 1 I2CStop(); + 160 1 I2C_Delay(255); + 161 1 I2C_Delay(255); + 162 1 I2C_Delay(255); + 163 1 I2C_Delay(255); + 164 1 } + 165 /// @brief EEPROM 读函数 + 166 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 167 /// @param addr 8的倍数 + 168 /// @param num 读取的数组大小 + 169 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 170 { + 171 1 // 选择芯片为EEPROM,模式为写 + 172 1 I2CStart(); + 173 1 I2CSendByte(0xA0); + 174 1 I2CWaitAck(); + 175 1 + 176 1 I2CSendByte(addr); + 177 1 I2CWaitAck(); + C51 COMPILER V9.59.0.0 IIC 04/12/2024 14:41:49 PAGE 4 + + 178 1 + 179 1 // 选择芯片为EEPROM,模式为读 + 180 1 I2CStart(); + 181 1 I2CSendByte(0xA1); + 182 1 I2CWaitAck(); + 183 1 while (num--) + 184 1 { + 185 2 *EEPROM_String++ = I2CReceiveByte(); + 186 2 if (num) + 187 2 I2CSendAck(0); + 188 2 else + 189 2 I2CSendAck(1); // 停止读取 + 190 2 } + 191 1 I2CStop(); + 192 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 361 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/main.lst b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/main.lst new file mode 100644 index 0000000..b8d9c22 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/main.lst @@ -0,0 +1,261 @@ +C51 COMPILER V9.59.0.0 MAIN 04/12/2024 14:41:49 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ̷ */ + 12 uchar Key_Slow_Down; + 13 + 14 /* ʱ䷽ */ + 15 uint time_all_1s; + 16 uchar time_200ms; + 17 /* */ + 18 uchar Dis_Data[16] = {0}; // 洢飬ֱ鹹һ + 19 uchar Dis_show_index; // ʾ± + 20 uchar Dis_Data_index; // 洢± + 21 uchar Dis_new, Dis_old; // һκһβĽ + 22 uchar Blind_area; // ä + 23 uchar Led_blink_cnt; // ˸ + 24 /* ʾ */ + 25 uchar Seg_show_mode; // 0 ʾ 1 2 + 26 /* ж */ + 27 bit Led_blink_start; // Ƿʼ˸ + 28 bit Led_blink_flag; // ˸־λ + 29 bit Work_mode; // 0 һ 1 һ+һ + 30 /* ̴ */ + 31 void Key_Proc() + 32 { + 33 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 34 1 uint DA_out = 0; + 35 1 if (time_all_1s % 10) + 36 1 return; + 37 1 Key_Val = Key_Read(); + 38 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 39 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 40 1 Key_Old = Key_Val; + 41 1 switch (Seg_show_mode) + 42 1 { + 43 2 case 0: + 44 2 /* */ + 45 2 if (Key_Down == 4) + 46 2 { + 47 3 Led_blink_start = 1; + 48 3 Dis_new = Ut_Wave_Data(); + 49 3 Dis_Data[Dis_Data_index] = Dis_new; + 50 3 Dis_Data[14] = Dis_Data_index; + 51 3 if (Dis_Data_index == 0) + 52 3 Dis_old = Dis_Data[9]; + 53 3 else + 54 3 Dis_old = Dis_Data[Dis_Data_index - 1]; + C51 COMPILER V9.59.0.0 MAIN 04/12/2024 14:41:49 PAGE 2 + + 55 3 Dis_Data_index = (++Dis_Data_index) % 10; // 0-9 + 56 3 EEPROM_Write(Dis_Data, 0, 8); + 57 3 EEPROM_Write(Dis_Data + 8, 8, 8); + 58 3 if (Dis_new < Blind_area) + 59 3 DA_out = 0; + 60 3 else + 61 3 DA_out = (Dis_new - Blind_area) * 51 * 0.02; + 62 3 if (DA_out >= 255) + 63 3 DA_out = 255; + 64 3 Da_Write(DA_out); + 65 3 } + 66 2 if (Key_Down == 7) + 67 2 Work_mode ^= 1; + 68 2 if (Key_Down == 5) + 69 2 // л + 70 2 Seg_show_mode = 1; + 71 2 if (Key_Down == 6) + 72 2 // л + 73 2 Seg_show_mode = 2; + 74 2 break; + 75 2 + 76 2 case 1: + 77 2 /* Խ */ + 78 2 if (Key_Down == 5) + 79 2 // л + 80 2 Seg_show_mode = 0; + 81 2 if (Key_Down == 7) + 82 2 // ҳ + 83 2 Dis_show_index = (++Dis_show_index) % 10; + 84 2 break; + 85 2 case 2: + 86 2 /* ý */ + 87 2 if (Key_Down == 6) + 88 2 { + 89 3 // л + 90 3 Seg_show_mode = 0; + 91 3 Dis_Data[15] = Blind_area; + 92 3 EEPROM_Write(Dis_Data + 8, 8, 8); + 93 3 } + 94 2 if (Key_Down == 7) + 95 2 // ѭ + 96 2 Blind_area = (Blind_area == 90) ? 0 : Blind_area + 10; + 97 2 break; + 98 2 } + 99 1 } + 100 /* ܴ */ + 101 void Seg_Proc() + 102 { + 103 1 uint Work_data = 0; + 104 1 + 105 1 if (time_all_1s % 20) + 106 1 return; + 107 1 switch (Seg_show_mode) + 108 1 { + 109 2 case 0: + 110 2 /* */ + 111 2 Seg_Buf[0] = Work_mode; + 112 2 Seg_Buf[1] = 10; + 113 2 if (Work_mode) + 114 2 Work_data = Dis_old + Dis_new; + 115 2 else + 116 2 Work_data = Dis_old; + C51 COMPILER V9.59.0.0 MAIN 04/12/2024 14:41:49 PAGE 3 + + 117 2 Seg_Buf[2] = (Work_data / 100 % 10 == 0) ? 10 + 118 2 : Work_data / 100 % 10; + 119 2 Seg_Buf[3] = (Work_data / 10 % 10 == 0 && + 120 2 Seg_Buf[2] == 10) + 121 2 ? 10 + 122 2 : Work_data / 10 % 10; + 123 2 Seg_Buf[4] = Work_data % 10; + 124 2 Seg_Buf[5] = Dis_new / 100 % 10; + 125 2 Seg_Buf[6] = Dis_new / 10 % 10; + 126 2 Seg_Buf[7] = Dis_new % 10; + 127 2 break; + 128 2 + 129 2 case 1: + 130 2 /* Խ */ + 131 2 Seg_Buf[0] = (Dis_show_index + 1) / 10 % 10; + 132 2 Seg_Buf[1] = (Dis_show_index + 1) % 10; + 133 2 Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 134 2 Seg_Buf[5] = Dis_Data[Dis_show_index] / 100 % 10; + 135 2 Seg_Buf[6] = Dis_Data[Dis_show_index] / 10 % 10; + 136 2 Seg_Buf[7] = Dis_Data[Dis_show_index] % 10; + 137 2 break; + 138 2 case 2: + 139 2 /* */ + 140 2 Seg_Buf[0] = 11; // F + 141 2 Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + 142 2 Seg_Buf[5] = (Blind_area / 100 % 10 == 0) ? 10 + 143 2 : Blind_area / 100 % 10; + 144 2 Seg_Buf[6] = (Blind_area / 10 % 10 == 0 && + 145 2 Seg_Buf[5] == 10) + 146 2 ? 10 + 147 2 : Blind_area / 10 % 10; + 148 2 Seg_Buf[7] = Blind_area % 10; + 149 2 break; + 150 2 } + 151 1 } + 152 + 153 /* LED */ + 154 void Led_Proc() + 155 { + 156 1 + 157 1 ucLed[0] = Led_blink_flag; + 158 1 ucLed[6] = (Seg_show_mode == 2); + 159 1 ucLed[7] = (Seg_show_mode == 1); + 160 1 } + 161 + 162 /* ʱ0жϳʼ */ + 163 void Timer0_Init(void) // 1@12.000MHz + 164 { + 165 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 166 1 TMOD &= 0xF0; // öʱģʽ + 167 1 TL0 = 0x18; // öʱʼֵ + 168 1 TH0 = 0xFC; // öʱʼֵ + 169 1 TF0 = 0; // TF0־ + 170 1 TR0 = 1; // ʱ0ʼʱ + 171 1 ET0 = 1; + 172 1 EA = 1; + 173 1 } + 174 + 175 /* ʱ0жϺ */ + 176 void Timer0_ISR(void) interrupt 1 + 177 { + 178 1 if (++time_all_1s == 1000) + C51 COMPILER V9.59.0.0 MAIN 04/12/2024 14:41:49 PAGE 4 + + 179 1 time_all_1s = 0; + 180 1 if (++Seg_Pos == 8) + 181 1 Seg_Pos = 0; + 182 1 if (Led_blink_start) + 183 1 { + 184 2 if (++time_200ms == 200) + 185 2 { + 186 3 time_200ms = 0; + 187 3 Led_blink_flag ^= 1; + 188 3 Led_blink_cnt++; + 189 3 } + 190 2 if (Led_blink_cnt == 20) + 191 2 Led_blink_start = 0; // ֹͣ˸ + 192 2 } + 193 1 else + 194 1 { + 195 2 time_200ms = 0; + 196 2 Led_blink_cnt = 0; + 197 2 Led_blink_flag = 0; + 198 2 } + 199 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 200 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 201 1 } + 202 + 203 uchar passwd = 123; + 204 uchar input_passwd; + 205 void main() + 206 { + 207 1 System_Init(); + 208 1 Timer0_Init(); + 209 1 EEPROM_Read(&input_passwd, 16, 1); + 210 1 if (input_passwd != passwd) // Уʧܣ֮ǰδд1/256ʳ + 211 1 { + 212 2 EEPROM_Write(&passwd, 16, 1); + 213 2 } + 214 1 else // УͨȡҪ + 215 1 { + 216 2 EEPROM_Read(Dis_Data, 0, 8); + 217 2 EEPROM_Read(Dis_Data + 8, 8, 8); + 218 2 Blind_area = Dis_Data[15]; + 219 2 Dis_Data_index = Dis_Data[14]; + 220 2 Dis_old = Dis_Data[Dis_Data_index]; + 221 2 } + 222 1 + 223 1 while (1) + 224 1 { + 225 2 Key_Proc(); + 226 2 Seg_Proc(); + 227 2 Led_Proc(); + 228 2 } + 229 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 975 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 59 2 + IDATA SIZE = ---- ---- + BIT SIZE = 3 ---- +END OF MODULE INFORMATION. + + C51 COMPILER V9.59.0.0 MAIN 04/12/2024 14:41:49 PAGE 5 + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/onewire.lst b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/onewire.lst new file mode 100644 index 0000000..c7f63e7 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/zuolan.m51 b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/zuolan.m51 new file mode 100644 index 0000000..5327067 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Listings/zuolan.m51 @@ -0,0 +1,970 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\iic.obj, .\Objects\Ultrasonic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\iic.obj (IIC) + .\Objects\Ultrasonic.obj (ULTRASONIC) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?IMUL) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0014H UNIT ?DT?SEG + DATA 001CH 0002H UNIT ?DT?LED + 001EH 0002H *** GAP *** + BIT 0020H.0 0000H.3 UNIT ?BI?MAIN + 0020H.3 0000H.5 *** GAP *** + DATA 0021H 003BH UNIT ?DT?MAIN + DATA 005CH 0007H UNIT _DATA_GROUP_ + IDATA 0063H 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0007H UNIT ?PR?DELAY12US?ULTRASONIC + 000AH 0001H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 0265H UNIT ?C?LIB_CODE + CODE 0273H 0150H UNIT ?PR?KEY_PROC?MAIN + CODE 03C3H 0149H UNIT ?PR?SEG_PROC?MAIN + CODE 050CH 009EH UNIT ?PR?TIMER0_ISR?MAIN + CODE 05AAH 008CH UNIT ?C_C51STARTUP + CODE 0636H 007AH UNIT ?PR?KEY_READ?KEY + CODE 06B0H 005DH UNIT ?PR?MAIN?MAIN + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 2 + + + CODE 070DH 0052H UNIT ?C_INITSEG + CODE 075FH 0046H UNIT ?PR?_EEPROM_WRITE?IIC + CODE 07A5H 0042H UNIT ?PR?_EEPROM_READ?IIC + CODE 07E7H 003CH UNIT ?PR?UT_WAVE_DATA?ULTRASONIC + CODE 0823H 003AH UNIT ?PR?_LED_DISP?LED + CODE 085DH 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 0893H 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 08C8H 0026H UNIT ?PR?LED_PROC?MAIN + CODE 08EEH 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 0914H 0024H UNIT ?PR?I2CWAITACK?IIC + CODE 0938H 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0955H 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 096FH 001AH UNIT ?PR?UT_WAVE_INIT?ULTRASONIC + CODE 0989H 0018H UNIT ?PR?_I2CSENDACK?IIC + CODE 09A1H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 09B6H 0015H UNIT ?PR?_DA_WRITE?IIC + CODE 09CBH 000FH UNIT ?PR?I2CSTART?IIC + CODE 09DAH 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT DATA_GROUP + +--> CALLED SEGMENT START LENGTH +--------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?_EEPROM_READ?IIC + +--> ?PR?_EEPROM_WRITE?IIC + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?_EEPROM_READ?IIC 005CH 0005H + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CWAITACK?IIC ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 3 + + + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTART?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDACK?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?_EEPROM_WRITE?IIC 005EH 0005H + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?KEY_PROC?MAIN 005CH 0002H + +--> ?PR?KEY_READ?KEY + +--> ?PR?UT_WAVE_DATA?ULTRASONIC + +--> ?PR?_EEPROM_WRITE?IIC + +--> ?PR?_DA_WRITE?IIC + +?PR?UT_WAVE_DATA?ULTRASONIC ----- ----- + +--> ?PR?UT_WAVE_INIT?ULTRASONIC + +?PR?UT_WAVE_INIT?ULTRASONIC ----- ----- + +--> ?PR?DELAY12US?ULTRASONIC + +?PR?_DA_WRITE?IIC ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?I2CSTOP?IIC + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:050CH PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 4 + + + D:0025H PUBLIC time_200ms + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + B:0020H.0 PUBLIC Led_blink_flag + D:00F8H PUBLIC P7 + C:08C8H PUBLIC Led_Proc + D:0026H PUBLIC Seg_Point + D:00A8H PUBLIC IE + D:002EH PUBLIC passwd + C:03C3H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + B:0020H.1 PUBLIC Led_blink_start + D:002FH PUBLIC Seg_Buf + C:0273H PUBLIC Key_Proc + D:0037H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:06B0H PUBLIC main + D:0038H PUBLIC input_passwd + C:09A1H PUBLIC Timer0_Init + B:0020H.2 PUBLIC Work_mode + D:0039H PUBLIC Key_Slow_Down + D:003AH PUBLIC Led_blink_cnt + D:003BH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:003CH PUBLIC Dis_show_index + D:008EH PUBLIC AUXR + D:003DH PUBLIC Dis_old + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:003EH PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:003FH PUBLIC Dis_new + D:008AH PUBLIC TL0 + D:0040H PUBLIC time_all_1s + B:0088H.4 PUBLIC TR0 + D:0042H PUBLIC Blind_area + D:0043H PUBLIC ucLed + D:004BH PUBLIC Dis_Data_index + D:00D0H PUBLIC PSW + D:004CH PUBLIC Dis_Data + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + D:005CH SYMBOL DA_out + ------- ENDDO + C:0273H LINE# 31 + C:0273H LINE# 32 + C:0273H LINE# 34 + C:0278H LINE# 35 + C:0289H LINE# 37 + C:028EH LINE# 38 + C:0297H LINE# 39 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 5 + + + C:029DH LINE# 40 + C:02A0H LINE# 41 + C:02B5H LINE# 42 + C:02B5H LINE# 43 + C:02B5H LINE# 45 + C:02BEH LINE# 46 + C:02BEH LINE# 47 + C:02C0H LINE# 48 + C:02C5H LINE# 49 + C:02CCH LINE# 50 + C:02CFH LINE# 51 + C:02D3H LINE# 52 + C:02D8H LINE# 54 + C:02E0H LINE# 55 + C:02EBH LINE# 56 + C:02F9H LINE# 57 + C:0307H LINE# 58 + C:030EH LINE# 59 + C:0315H LINE# 61 + C:0340H LINE# 62 + C:034BH LINE# 63 + C:0351H LINE# 64 + C:0356H LINE# 65 + C:0356H LINE# 66 + C:035FH LINE# 67 + C:0364H LINE# 68 + C:036AH LINE# 70 + C:036DH LINE# 71 + C:0373H LINE# 73 + C:0376H LINE# 74 + C:0377H LINE# 76 + C:0377H LINE# 78 + C:0380H LINE# 80 + C:0382H LINE# 81 + C:0388H LINE# 83 + C:0393H LINE# 84 + C:0394H LINE# 85 + C:0394H LINE# 87 + C:039AH LINE# 88 + C:039AH LINE# 90 + C:039CH LINE# 91 + C:039FH LINE# 92 + C:03ACH LINE# 93 + C:03ACH LINE# 94 + C:03B2H LINE# 96 + C:03C2H LINE# 97 + C:03C2H LINE# 98 + C:03C2H LINE# 99 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:0002H SYMBOL Work_data + ------- ENDDO + C:03C3H LINE# 101 + C:03C3H LINE# 102 + C:03C3H LINE# 103 + C:03C4H LINE# 105 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 6 + + + C:03D5H LINE# 107 + C:03EAH LINE# 108 + C:03EAH LINE# 109 + C:03EAH LINE# 111 + C:03F0H LINE# 112 + C:03F3H LINE# 113 + C:03F6H LINE# 114 + C:0400H LINE# 116 + C:0404H LINE# 117 + C:0422H LINE# 119 + C:0446H LINE# 123 + C:0453H LINE# 124 + C:0460H LINE# 125 + C:046DH LINE# 126 + C:046FH LINE# 127 + C:0472H LINE# 129 + C:0472H LINE# 131 + C:048CH LINE# 132 + C:0499H LINE# 133 + C:04A2H LINE# 134 + C:04B4H LINE# 135 + C:04C0H LINE# 136 + C:04C1H LINE# 137 + C:04C3H LINE# 138 + C:04C3H LINE# 140 + C:04C6H LINE# 141 + C:04D2H LINE# 142 + C:04E7H LINE# 144 + C:0502H LINE# 148 + C:050BH LINE# 149 + C:050BH LINE# 150 + C:050BH LINE# 151 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:08C8H LINE# 154 + C:08C8H LINE# 155 + C:08C8H LINE# 157 + C:08CEH LINE# 158 + C:08DFH LINE# 159 + C:08EDH LINE# 160 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:09A1H LINE# 163 + C:09A1H LINE# 164 + C:09A1H LINE# 165 + C:09A4H LINE# 166 + C:09A7H LINE# 167 + C:09AAH LINE# 168 + C:09ADH LINE# 169 + C:09AFH LINE# 170 + C:09B1H LINE# 171 + C:09B3H LINE# 172 + C:09B5H LINE# 173 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:050CH LINE# 176 + C:0529H LINE# 178 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 7 + + + C:053AH LINE# 179 + C:0540H LINE# 180 + C:0548H LINE# 181 + C:054AH LINE# 182 + C:054DH LINE# 183 + C:054DH LINE# 184 + C:0555H LINE# 185 + C:0555H LINE# 186 + C:0557H LINE# 187 + C:055CH LINE# 188 + C:055EH LINE# 189 + C:055EH LINE# 190 + C:0564H LINE# 191 + C:0566H LINE# 192 + C:0568H LINE# 194 + C:0568H LINE# 195 + C:056BH LINE# 196 + C:056EH LINE# 197 + C:0570H LINE# 198 + C:0570H LINE# 199 + C:0583H LINE# 200 + C:058FH LINE# 201 + ------- ENDPROC TIMER0_ISR + ------- PROC MAIN + C:06B0H LINE# 205 + C:06B0H LINE# 206 + C:06B0H LINE# 207 + C:06B3H LINE# 208 + C:06B6H LINE# 209 + C:06C4H LINE# 210 + C:06CCH LINE# 211 + C:06CCH LINE# 212 + C:06D8H LINE# 213 + C:06DAH LINE# 215 + C:06DAH LINE# 216 + C:06E6H LINE# 217 + C:06F4H LINE# 218 + C:06F7H LINE# 219 + C:06FAH LINE# 220 + C:0702H LINE# 221 + C:0702H LINE# 223 + C:0702H LINE# 224 + C:0702H LINE# 225 + C:0705H LINE# 226 + C:0708H LINE# 227 + C:070BH LINE# 228 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 8 + + + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0823H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:001CH SYMBOL temp + D:001DH SYMBOL temp_old + ------- ENDDO + C:0823H LINE# 5 + C:0823H LINE# 6 + C:0823H LINE# 10 + C:0826H LINE# 11 + C:0835H LINE# 13 + C:0843H LINE# 14 + C:0849H LINE# 15 + C:0849H LINE# 16 + C:084EH LINE# 17 + C:0856H LINE# 18 + C:0859H LINE# 19 + C:085CH LINE# 20 + C:085CH LINE# 21 + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:085DH PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0014H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:085DH LINE# 6 + C:085DH LINE# 7 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 9 + + + C:085DH LINE# 9 + C:0860H LINE# 10 + C:0868H LINE# 13 + C:086FH LINE# 14 + C:0877H LINE# 15 + C:087AH LINE# 18 + C:0881H LINE# 19 + C:0884H LINE# 20 + C:0887H LINE# 21 + C:088FH LINE# 22 + C:0892H LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0636H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0636H LINE# 2 + C:0636H LINE# 3 + C:0636H LINE# 4 + C:0638H LINE# 5 + C:063AH LINE# 6 + C:063CH LINE# 7 + C:063EH LINE# 8 + C:0640H LINE# 9 + C:0642H LINE# 10 + C:0645H LINE# 11 + C:0647H LINE# 12 + C:064AH LINE# 13 + C:064CH LINE# 14 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 10 + + + C:064FH LINE# 15 + C:0651H LINE# 16 + C:0654H LINE# 17 + C:0656H LINE# 18 + C:0658H LINE# 19 + C:065AH LINE# 20 + C:065CH LINE# 21 + C:065EH LINE# 22 + C:0661H LINE# 23 + C:0663H LINE# 24 + C:0666H LINE# 25 + C:0668H LINE# 26 + C:066BH LINE# 27 + C:066DH LINE# 28 + C:0670H LINE# 29 + C:0672H LINE# 30 + C:0674H LINE# 31 + C:0676H LINE# 32 + C:0678H LINE# 33 + C:067AH LINE# 34 + C:067DH LINE# 35 + C:067FH LINE# 36 + C:0682H LINE# 37 + C:0684H LINE# 38 + C:0687H LINE# 39 + C:0689H LINE# 40 + C:068CH LINE# 41 + C:068EH LINE# 42 + C:0690H LINE# 43 + C:0692H LINE# 44 + C:0694H LINE# 45 + C:0696H LINE# 46 + C:0699H LINE# 47 + C:069BH LINE# 48 + C:069EH LINE# 49 + C:06A0H LINE# 50 + C:06A3H LINE# 51 + C:06A5H LINE# 52 + C:06A8H LINE# 53 + C:06AAH LINE# 54 + C:06ACH LINE# 55 + C:06AFH LINE# 56 + C:06AFH LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0938H PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 11 + + + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0938H LINE# 3 + C:0938H LINE# 4 + C:0938H LINE# 5 + C:093BH LINE# 6 + C:0943H LINE# 7 + C:0946H LINE# 9 + C:0949H LINE# 10 + C:0951H LINE# 11 + C:0954H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0959H SYMBOL _I2C_Delay + C:09B6H PUBLIC _Da_Write + D:00B8H PUBLIC IP + C:08EEH PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + C:07A5H PUBLIC _EEPROM_Read + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + C:075FH PUBLIC _EEPROM_Write + B:00A0H.0 PUBLIC scl + C:09CBH PUBLIC I2CStart + C:0989H PUBLIC _I2CSendAck + C:0893H PUBLIC _I2CSendByte + C:0926H PUBLIC I2CWaitAck + C:09DAH PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:0955H SYMBOL L?0035 + ------- PROC L?0034 + ------- ENDPROC L?0034 + C:0955H SYMBOL L?0035 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:0959H LINE# 12 + C:0959H LINE# 13 + C:0959H LINE# 15 + C:0959H LINE# 16 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 12 + + + C:095AH LINE# 17 + C:095BH LINE# 18 + C:095CH LINE# 19 + C:095DH LINE# 20 + C:095EH LINE# 21 + C:095FH LINE# 22 + C:0960H LINE# 23 + C:0961H LINE# 24 + C:0962H LINE# 25 + C:0963H LINE# 26 + C:0964H LINE# 27 + C:0965H LINE# 28 + C:0966H LINE# 29 + C:0967H LINE# 30 + C:0968H LINE# 31 + C:096EH LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:09CBH LINE# 35 + C:09CBH LINE# 36 + C:09CBH LINE# 37 + C:09CDH LINE# 38 + C:09CDH LINE# 39 + C:09D0H LINE# 40 + C:09D2H LINE# 41 + C:09D7H LINE# 42 + C:09D9H LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:09DAH LINE# 46 + C:09DAH LINE# 47 + C:09DAH LINE# 48 + C:09DCH LINE# 49 + C:09DCH LINE# 50 + C:09DFH LINE# 51 + C:09E1H LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0893H LINE# 56 + C:0895H LINE# 57 + C:0895H LINE# 60 + C:08A1H LINE# 61 + C:08A1H LINE# 62 + C:08A3H LINE# 63 + C:08A8H LINE# 64 + C:08ACH LINE# 65 + C:08ACH LINE# 66 + C:08AEH LINE# 67 + C:08B0H LINE# 69 + C:08B0H LINE# 70 + C:08B2H LINE# 71 + C:08B2H LINE# 72 + C:08B7H LINE# 73 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 13 + + + C:08B9H LINE# 74 + C:08BDH LINE# 75 + C:08C2H LINE# 76 + C:08C5H LINE# 78 + C:08C7H LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:08EEH LINE# 82 + C:08EEH LINE# 83 + C:08EEH LINE# 86 + C:08FAH LINE# 87 + C:08FAH LINE# 88 + C:08FAH LINE# 89 + C:08FDH LINE# 90 + C:0901H LINE# 91 + C:0904H LINE# 92 + C:0907H LINE# 93 + C:0909H LINE# 94 + C:090EH LINE# 95 + C:0911H LINE# 96 + C:0913H LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + C:091BH SYMBOL L?0033 + ------- PROC L?0032 + ------- ENDPROC L?0032 + C:091BH SYMBOL L?0033 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:0926H LINE# 100 + C:0926H LINE# 101 + C:0926H LINE# 104 + C:0926H LINE# 105 + C:0929H LINE# 106 + C:092EH LINE# 107 + C:0930H LINE# 108 + C:0935H LINE# 110 + C:0937H LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:0989H LINE# 114 + C:0989H LINE# 115 + C:0989H LINE# 116 + C:098BH LINE# 117 + C:0990H LINE# 118 + C:0995H LINE# 119 + C:0995H LINE# 120 + C:0998H LINE# 121 + C:099AH LINE# 122 + C:099CH LINE# 123 + ------- ENDPROC _I2CSENDACK + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 14 + + + ------- PROC _DA_WRITE + D:0003H SYMBOL dat + C:09B6H LINE# 126 + C:09B8H LINE# 127 + C:09B8H LINE# 129 + C:09BBH LINE# 130 + C:09C0H LINE# 131 + C:09C3H LINE# 133 + C:09C5H LINE# 134 + C:09C5H LINE# 135 + C:09C5H LINE# 136 + C:09C8H LINE# 137 + ------- ENDPROC _DA_WRITE + ------- PROC _EEPROM_WRITE + D:005EH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0062H SYMBOL num + C:075FH LINE# 144 + C:0765H LINE# 145 + C:0765H LINE# 147 + C:0765H LINE# 148 + C:0765H LINE# 149 + C:0765H LINE# 151 + C:0765H LINE# 152 + C:0768H LINE# 153 + C:076FH LINE# 154 + C:076FH LINE# 155 + C:0784H LINE# 156 + C:0787H LINE# 157 + C:078CH LINE# 158 + C:078EH LINE# 159 + C:0791H LINE# 160 + C:0796H LINE# 161 + C:079BH LINE# 162 + C:07A0H LINE# 163 + ------- ENDPROC _EEPROM_WRITE + ------- PROC _EEPROM_READ + D:005CH SYMBOL EEPROM_String + D:0003H SYMBOL addr + D:0060H SYMBOL num + C:07A5H LINE# 169 + C:07ABH LINE# 170 + C:07ABH LINE# 172 + C:07ABH LINE# 173 + C:07ABH LINE# 174 + C:07ABH LINE# 176 + C:07ABH LINE# 177 + C:07AEH LINE# 180 + C:07B1H LINE# 181 + C:07B6H LINE# 182 + C:07B9H LINE# 183 + C:07C0H LINE# 184 + C:07C0H LINE# 185 + C:07D5H LINE# 186 + C:07D9H LINE# 187 + C:07DDH LINE# 189 + C:07E2H LINE# 190 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 15 + + + C:07E4H LINE# 191 + ------- ENDPROC _EEPROM_READ + ------- ENDMOD IIC + + ------- MODULE ULTRASONIC + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + B:00D8H.7 PUBLIC CF + D:00F9H PUBLIC CH + D:00A8H PUBLIC IE + D:00E9H PUBLIC CL + B:00D8H.6 PUBLIC CR + D:00B8H PUBLIC IP + C:07E7H PUBLIC Ut_Wave_Data + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:096FH PUBLIC Ut_Wave_Init + C:0003H PUBLIC Delay12us + B:0090H.1 PUBLIC Rx + B:0090H.0 PUBLIC Tx + D:00D0H PUBLIC PSW + ------- PROC DELAY12US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0003H LINE# 6 + C:0003H LINE# 7 + C:0003H LINE# 10 + C:0004H LINE# 11 + C:0005H LINE# 12 + C:0007H LINE# 13 + C:0009H LINE# 15 + ------- ENDPROC DELAY12US + ------- PROC UT_WAVE_INIT + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:096FH LINE# 17 + C:096FH LINE# 18 + C:096FH LINE# 23 + C:097BH LINE# 24 + C:097BH LINE# 25 + C:097DH LINE# 26 + C:0980H LINE# 27 + C:0982H LINE# 28 + C:0985H LINE# 29 + C:0988H LINE# 30 + ------- ENDPROC UT_WAVE_INIT + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 16 + + + ------- PROC UT_WAVE_DATA + ------- DO + D:0006H SYMBOL time + ------- ENDDO + C:07E7H LINE# 32 + C:07E7H LINE# 33 + C:07E7H LINE# 35 + C:07ECH LINE# 36 + C:07EEH LINE# 38 + C:07F0H LINE# 39 + C:07F3H LINE# 40 + C:07F5H LINE# 41 + C:07F7H LINE# 42 + C:07FDH LINE# 44 + C:07FFH LINE# 45 + C:0802H LINE# 46 + C:0802H LINE# 47 + C:080AH LINE# 49 + C:081EH LINE# 50 + C:081EH LINE# 52 + C:081EH LINE# 53 + C:0820H LINE# 54 + C:0822H LINE# 55 + C:0822H LINE# 56 + ------- ENDPROC UT_WAVE_DATA + ------- ENDMOD ULTRASONIC + + ------- MODULE ?C?FPMUL + C:000EH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:011EH PUBLIC ?C?FCASTC + C:0119H PUBLIC ?C?FCASTI + C:0114H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0152H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?CLDPTR + C:01D3H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + + ------- MODULE ?C?CSTPTR + C:01ECH PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + + ------- MODULE ?C?IMUL + C:01FEH PUBLIC ?C?IMUL + ------- ENDMOD ?C?IMUL + + ------- MODULE ?C?UIDIV + C:0210H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/12/2024 14:41:49 PAGE 17 + + + ------- MODULE ?C?LNEG + C:0265H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + +Program Size: data=97.3 xdata=0 code=2533 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/ExtDll.iex b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Init.obj b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Init.obj new file mode 100644 index 0000000..55549d5 Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Init.obj differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Key.obj b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Key.obj new file mode 100644 index 0000000..820b3a4 Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Key.obj differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Led.obj b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Led.obj new file mode 100644 index 0000000..082cba0 Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Led.obj differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Seg.obj b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Seg.obj new file mode 100644 index 0000000..1903afa Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Seg.obj differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Uart.obj b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Uart.obj differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Ultrasonic.obj b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..6f37c6c Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/Ultrasonic.obj differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/ds1302.obj b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/ds1302.obj differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/iic.obj b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/iic.obj new file mode 100644 index 0000000..6484011 Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/iic.obj differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/main.obj b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/main.obj new file mode 100644 index 0000000..361a6d2 Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/main.obj differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/onewire.obj b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/onewire.obj new file mode 100644 index 0000000..772b6d9 Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/onewire.obj differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan new file mode 100644 index 0000000..036b381 Binary files /dev/null and b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan differ diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan.build_log.htm b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..e5591f6 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan.build_log.htm @@ -0,0 +1,42 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: STCMON51.DLL V1, 0, 10, 0 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\ڰ˽_EEPROM̶쳣ʧ\User\zuolan.uvproj +Project File Date: 04/03/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling iic.c... +compiling Ultrasonic.c... +linking... +Program Size: data=97.3 xdata=0 code=2533 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan.hex b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan.hex new file mode 100644 index 0000000..6d18b03 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan.hex @@ -0,0 +1,193 @@ +:10070D0008430000000000000000082F0A0A0A0A32 +:10071D000A0A0A0A08260000000000000000104C1A +:10072D0000000000000000000000000000000000BC +:03073D00012E7B0F +:10027300E4F55CF55DAE40AF41FC7D0A120210ED82 +:100283004C60030203C21206368F21E5246521FF69 +:100293005521F522E521F45FF523852124E53E145C +:1002A30070030203771470030203942402600302B1 +:1002B30003C2E52264046003020356D2011207E776 +:1002C3008F3F744C254BF8A63F854B5AE54B700581 +:1002D30085553D8008744B254BF8E6F53D054BE508 +:1002E3004B75F00A8485F04B7B007A00794C75627C +:1002F30008E4FD12075F7B007A0079547562087D7C +:100303000812075FE53FC395425007E4F55CF55DCE +:10031300802BC3E53F9542FFE49400FE7C007D33D0 +:100323001201FEAC06AD07EC1201197B0A7AD779EC +:10033300A3783C12000E1201528E5C8F5DC3E55D03 +:1003430094FFE55C94004006755C00755DFFAF5D4E +:100353001209B6AF227E00EF64077005A202B392C2 +:1003630002EF64054E7003753E01EF64064E704F55 +:10037300753E0222AF227E00EF64057002F53EEF68 +:1003830064074E703A053CE53C75F00A8485F03C01 +:1003930022E52264067012F53E85425BFB7A007902 +:1003A300547562087D0812075FE52264077010E543 +:0F03B30042645A7003FF8005E542240AFF8F421F +:0103C2002218 +:1003C300E4AE40AF41FC7D14120210ED4C60030219 +:1003D300050BE53E1470030204721470030204C398 +:1003E3002402600302050BA202E433F52F75300AE1 +:1003F30030020AE53D253FFBE433FA80047A00AB83 +:100403003D7C007D64AF03AE021202107C007D0AC6 +:10041300120210ED4C70047F0A8002AF058F317C0D +:10042300007D0AAF03AE021202107C007D0A1202A5 +:1004330010ED4C700AE531640A70047F0A8002AF44 +:10044300058F32AE02AF037C007D0A1202108D339A +:10045300E53F75F0648475F00A8485F034E53F75F3 +:10046300F00A8475F00A8485F035E53F020504E55A +:100473003C2401FBE433FA7C007D0AAF03FE120245 +:1004830010EF75F00A8485F02F7C007D0AAF03AE70 +:10049300021202108D3075330A75320A75310A74EF +:1004A3004C253CF8E6FF75F0648475F00A8485F00A +:1004B30034EF75F00A8475F00A8485F035E68041DF +:1004C300752F0B75330A75320A75310A75300AE5D3 +:1004D3004275F0648475F00A84AFF0EF70047F0A0C +:1004E30080008F34E54275F00A8475F00A84AFF01A +:1004F300EF700AE534640A70047F0A80008F35E5E3 +:080503004275F00A8485F03610 +:01050B0022CD +:1008C800A200E433F543AF3E7E00EF640270047D7E +:1008D8000180027D008D49EF64014E70047F018024 +:0608E800027F008F4A228E +:1009A100538E7F5389F0758A18758CFCC28DD28C59 +:0509B100D2A9D2AF2223 +:03000B0002050CDF +:10050C00C0E0C0F0C083C082C0D075D000C000C0B5 +:10051C0001C002C003C004C005C006C0070541E508 +:10052C004170020540FFAE40BE0309BFE8067540AE +:10053C0000754100053BE53B64087002F53B30015A +:10054C001B0525E52564C87009F525A200B39200AA +:10055C00053AE53A6414700CC201800875250075E3 +:10056C003A00C200742F253BF8E6FD7426253BF8B3 +:10057C00E6FBAF3B12085D7443253BF8E6FDAF3B51 +:10058C00120823D007D006D005D004D003D002D057 +:0E059C0001D000D0D0D082D083D0F0D0E03299 +:1006B0001209381209A17B007A0079387560017D32 +:1006C000101207A5E538652E7B00600E7A00792EA2 +:1006D0007562017D1012075F80287A00794C756081 +:1006E00008E4FD1207A57B007A0079547560087D47 +:1006F000081207A5855B42855A4B744C254BF8E6DA +:0D070000F53D1202731203C31208C880F504 +:06074000011C00011DFF79 +:10082300ED600FA8077401088002C333D8FC421C93 +:10083300800EA8077401088002C333D8FCF4521C4D +:10084300E51C651D6013E51CF4F580E5A0541F4409 +:0908530080F5A053A01F851C1DB7 +:01085C002279 +:100746000C08C0F9A4B0999282F88090FF8608142C +:0807560001020408102040809C +:10085D007580FFE5A0541F44E0F5A074142FF8E651 +:10086D00F580E5A0541F44C0F5A053A01F74082DBA +:10087D00F8E6F580EB600353807FE5A0541F44E05C +:06088D00F5A053A01F229C +:10063600E4FFC2A9C2C4D2C2D2B5D2B420B3027FEB +:100646000420B2027F0520B1027F0620B0027F0798 +:10065600D2C4C2C2D2B5D2B420B3027F0820B2023D +:100666007F0920B1027F0A20B0027F0BD2C4D2C21A +:10067600C2B5D2B420B3027F0C20B2027F0D20B1E6 +:10068600027F0E20B0027F0FD2C4D2C2D2B5C2B44E +:1006960020B3027F1020B2027F1120B1027F122008 +:0906A600B0027F13D2A975B0FF68 +:0106AF002228 +:100938007580FFE5A0541F4480F5A053A01FE4F57F +:0D09480080E5A0541F44A0F5A053A01F227D +:04095500D2A07F05A8 +:10095900000000000000000000000000000000AEE0 +:06096900071FEE70EB22F7 +:0F09CB00D2A1120955C2A17F05120959C2A0225B +:0C09DA00C2A1120955D2A17F05020959E3 +:02089300AD07AF +:10089500E4FCECC39408748094805024C2A07F05C6 +:1008A500120959ED30E704D2A18002C2A17F0512D9 +:1008B5000959D2A0ED25E0FD7F051209590C80D21A +:0208C500C2A0CF +:0108C700220E +:1008EE00E4FCECC39408748094805017120955ED03 +:1008FE0025E0FD30A103430501C2A07F0512095971 +:05090E000C80DFAF05C5 +:0109130022C1 +:10091400AB051209CB7FA0120893120926AF03126C +:02092400089336 +:10092600120955A2A1E433FDC2A07F05120959AFF1 +:0109360005BB +:01093700229D +:10098900C2A0EF24FF92A17F05120959120955C28D +:08099900A0D2A17F050209595B +:1009B600AB071209CB7F901208931209267F4112CA +:0509C600091B0209DA23 +:10075F008B5E8A5F8960120914AF621562EF601FAA +:10076F00AB5E0560E560AA5F7002055F14F91201C8 +:10077F00D3FF1208931209267FC812095980DA1283 +:10078F0009DA7FFF1209597FFF1209597FFF1209FA +:06079F00597FFF02095919 +:1007A5008B5C8A5D895E1209141209CB7FA1120840 +:1007B50093120926AF601560EF60241208EEAB5C5A +:1007C500055EE55EAA5D7002055D14F9EF1201ECA8 +:1007D500E5606004E4FF80027F0112098980D5028B +:0207E50009DA2F +:0600030000007F21DFFE7A +:0100090022D4 +:10096F00E4FEEEC3940874809480500DD290120070 +:09097F0003C2901200030E80E98E +:01098800224C +:1007E700E4F5E9F5F9F5D8C2AF12096FD2AFD2DE59 +:1007F70030910330DFFAC2DE20DF1CAFF9EFFEAD28 +:10080700E9EDFFAC06E41201197B967A43798B7800 +:0B0817003C12000E020152C2DF7F0005 +:0108220022B3 +:10000E00EC4D6011E8497017ED33EC3304600DE4EC +:10001E00FCFFFEFD22E933E8330470F80201BE1244 +:10002E00018958046009E4CC248150062850090245 +:10003E0001C82840030201C5C0E0EB4A7044B980F4 +:10004E0006D0E0FB0201B4EF4E701CBD8008EBFF42 +:10005E00EAFEE9FD80EBE98DF0A4FEE5F00200F783 +:10006E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89CD +:10007E00F0A42EFFE435F0CD89F0A42DFEE435F08A +:10008E008067EF4E7005BD80D780C3EF8BF0A4ACB8 +:10009E00F0EE8BF0A42CFCE435F0F8EF8AF0A42CF3 +:1000AE00E5F038FCE433CB8DF0A42CFCE5F03BF806 +:1000BE00EE8AF0A42CFCE5F038F8E433CF89F0A4F6 +:1000CE002CFCE5F038CF3400CE89F0A42FFFE5F0FC +:1000DE003EFEE433C98DF0A42EFEE5F039CD8AF054 +:1000EE00A42FFFE5F03EFEE43DFD33D0E0FB5007CC +:1000FE000BBB000F0201C8EC2CFCEF33FFEE33FEFE +:06010E00ED33FD0201A02B +:1001140075F020800E75F010800575F0087D007E66 +:10012400007F003392D530D503120265EC334010C2 +:10013400EF33FFEE33FEED33FDEC33FCD5F0ED226F +:0E014400E5F0247EA2D513CC92E7CDCEFF22AB +:10015200EDD2E7CD33EC3392D524814006E4FFFEA5 +:10016200FDFC22FCE4CFCECDCC24E0501174FF8004 +:10017200EDC3CC13CCCD13CDCE13CECF13CF0470A1 +:07018200F030D5DE0202653A +:10018900E9D2E7C933E833F892D5EDD2E7CD33ECBC +:0701990033FC5002B2D52235 +:1001A000EC30E7100FBF000C0EBE00080DBD0004C0 +:1001B0000BEB6014A2D5EB13FCED92E7FD2274FF6C +:1001C000FCFDFEFF22E480F8A2D574FF13FC7D80C5 +:0301D000E480EFD9 +:030000000205AA4C +:0C05AA00787FE4F6D8FD7581620205F14F +:1001D300BB010689828A83E0225002E722BBFE022A +:0901E300E32289828A83E493225D +:1001EC00BB010689828A83F0225002F722BBFE01F2 +:0201FC00F322EC +:1001FE00EF8DF0A4A8F0CF8CF0A428CE8DF0A42E15 +:02020E00FE22CE +:10021000BC000BBE0029EF8DF084FFADF022E4CCD2 +:10022000F875F008EF2FFFEE33FEEC33FCEE9DEC9B +:10023000984005FCEE9DFE0FD5F0E9E4CEFD22EDE1 +:10024000F8F5F0EE8420D21CFEADF075F008EF2F2B +:10025000FFED33FD4007985006D5F0F222C398FD1C +:050260000FD5F0EA22B9 +:0E026500C3E49FFFE49EFEE49DFDE49CFC22AA +:1005B6000206B0E493A3F8E493A34003F68001F2A5 +:1005C60008DFF48029E493A3F85407240CC8C33346 +:1005D600C4540F4420C8834004F456800146F6DF15 +:1005E600E4800B010204081020408090070DE47E91 +:1005F600019360BCA3FF543F30E509541FFEE4930A +:10060600A360010ECF54C025E060A840B8E493A3D0 +:10061600FAE493A3F8E493A3C8C582C8CAC583CAFB +:10062600F0A3C8C582C8CAC583CADFE9DEE780BEB3 +:01075E00009A +:00000001FF diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan.lnp b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan.lnp new file mode 100644 index 0000000..d4379a7 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/Objects/zuolan.lnp @@ -0,0 +1,9 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\iic.obj", +".\Objects\Ultrasonic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/main.c b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/main.c new file mode 100644 index 0000000..260834b --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/main.c @@ -0,0 +1,229 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ̷ */ +uchar Key_Slow_Down; + +/* ʱ䷽ */ +uint time_all_1s; +uchar time_200ms; +/* */ +uchar Dis_Data[16] = {0}; // 洢飬ֱ鹹һ +uchar Dis_show_index; // ʾ± +uchar Dis_Data_index; // 洢± +uchar Dis_new, Dis_old; // һκһβĽ +uchar Blind_area; // ä +uchar Led_blink_cnt; // ˸ +/* ʾ */ +uchar Seg_show_mode; // 0 ʾ 1 2 +/* ж */ +bit Led_blink_start; // Ƿʼ˸ +bit Led_blink_flag; // ˸־λ +bit Work_mode; // 0 һ 1 һ+һ +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + uint DA_out = 0; + if (time_all_1s % 10) + return; + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + switch (Seg_show_mode) + { + case 0: + /* */ + if (Key_Down == 4) + { + Led_blink_start = 1; + Dis_new = Ut_Wave_Data(); + Dis_Data[Dis_Data_index] = Dis_new; + Dis_Data[14] = Dis_Data_index; + if (Dis_Data_index == 0) + Dis_old = Dis_Data[9]; + else + Dis_old = Dis_Data[Dis_Data_index - 1]; + Dis_Data_index = (++Dis_Data_index) % 10; // 0-9 + EEPROM_Write(Dis_Data, 0, 8); + EEPROM_Write(Dis_Data + 8, 8, 8); + if (Dis_new < Blind_area) + DA_out = 0; + else + DA_out = (Dis_new - Blind_area) * 51 * 0.02; + if (DA_out >= 255) + DA_out = 255; + Da_Write(DA_out); + } + if (Key_Down == 7) + Work_mode ^= 1; + if (Key_Down == 5) + // л + Seg_show_mode = 1; + if (Key_Down == 6) + // л + Seg_show_mode = 2; + break; + + case 1: + /* Խ */ + if (Key_Down == 5) + // л + Seg_show_mode = 0; + if (Key_Down == 7) + // ҳ + Dis_show_index = (++Dis_show_index) % 10; + break; + case 2: + /* ý */ + if (Key_Down == 6) + { + // л + Seg_show_mode = 0; + Dis_Data[15] = Blind_area; + EEPROM_Write(Dis_Data + 8, 8, 8); + } + if (Key_Down == 7) + // ѭ + Blind_area = (Blind_area == 90) ? 0 : Blind_area + 10; + break; + } +} +/* ܴ */ +void Seg_Proc() +{ + uint Work_data = 0; + + if (time_all_1s % 20) + return; + switch (Seg_show_mode) + { + case 0: + /* */ + Seg_Buf[0] = Work_mode; + Seg_Buf[1] = 10; + if (Work_mode) + Work_data = Dis_old + Dis_new; + else + Work_data = Dis_old; + Seg_Buf[2] = (Work_data / 100 % 10 == 0) ? 10 + : Work_data / 100 % 10; + Seg_Buf[3] = (Work_data / 10 % 10 == 0 && + Seg_Buf[2] == 10) + ? 10 + : Work_data / 10 % 10; + Seg_Buf[4] = Work_data % 10; + Seg_Buf[5] = Dis_new / 100 % 10; + Seg_Buf[6] = Dis_new / 10 % 10; + Seg_Buf[7] = Dis_new % 10; + break; + + case 1: + /* Խ */ + Seg_Buf[0] = (Dis_show_index + 1) / 10 % 10; + Seg_Buf[1] = (Dis_show_index + 1) % 10; + Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + Seg_Buf[5] = Dis_Data[Dis_show_index] / 100 % 10; + Seg_Buf[6] = Dis_Data[Dis_show_index] / 10 % 10; + Seg_Buf[7] = Dis_Data[Dis_show_index] % 10; + break; + case 2: + /* */ + Seg_Buf[0] = 11; // F + Seg_Buf[1] = Seg_Buf[2] = Seg_Buf[3] = Seg_Buf[4] = 10; + Seg_Buf[5] = (Blind_area / 100 % 10 == 0) ? 10 + : Blind_area / 100 % 10; + Seg_Buf[6] = (Blind_area / 10 % 10 == 0 && + Seg_Buf[5] == 10) + ? 10 + : Blind_area / 10 % 10; + Seg_Buf[7] = Blind_area % 10; + break; + } +} + +/* LED */ +void Led_Proc() +{ + + ucLed[0] = Led_blink_flag; + ucLed[6] = (Seg_show_mode == 2); + ucLed[7] = (Seg_show_mode == 1); +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++time_all_1s == 1000) + time_all_1s = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (Led_blink_start) + { + if (++time_200ms == 200) + { + time_200ms = 0; + Led_blink_flag ^= 1; + Led_blink_cnt++; + } + if (Led_blink_cnt == 20) + Led_blink_start = 0; // ֹͣ˸ + } + else + { + time_200ms = 0; + Led_blink_cnt = 0; + Led_blink_flag = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +uchar passwd = 123; +uchar input_passwd; +void main() +{ + System_Init(); + Timer0_Init(); + EEPROM_Read(&input_passwd, 16, 1); + if (input_passwd != passwd) // Уʧܣ֮ǰδд1/256ʳ + { + EEPROM_Write(&passwd, 16, 1); + } + else // УͨȡҪ + { + EEPROM_Read(Dis_Data, 0, 8); + EEPROM_Read(Dis_Data + 8, 8, 8); + Blind_area = Dis_Data[15]; + Dis_Data_index = Dis_Data[14]; + Dis_old = Dis_Data[Dis_Data_index]; + } + + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/main.h b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/main.h new file mode 100644 index 0000000..f407e30 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/main.h @@ -0,0 +1,12 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "iic.h" +#include "Init.h" +#include "Ultrasonic.h" +#include "intrins.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/zuolan.uvgui.haze b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/zuolan.uvgui.haze new file mode 100644 index 0000000..a7b6fc9 --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/zuolan.uvgui.haze @@ -0,0 +1,2601 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 914 208 + + + 204 + Performance Analyzer + 1122 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 411 + -1237 + -197 + 899 + + + + 0 + + 263 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000043433A5C55736572735C68617A655C4465736B746F705CB5DAB0CBBDECB9FAC8FC5F454550524F4DB9CCB6A8B2BFB7D6D2ECB3A3B6AACAA75C557365725C6D61696E2E6300000000066D61696E2E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000054FBFFFFAD00000000000000D1020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 54FBFFFFAD00000030FEFFFF1A010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005A020000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005A020000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005A020000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005A020000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000008B020000400600005A030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000008E0200003D06000041030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100005A020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000008E0200003D06000041030000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 030000008E0200003D06000041030000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 2 + + 16 + 010000001C000000B803000038000000 + + + 16 + 0A0000000A000000BE03000042000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000005A030000400600006D030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 0 + + 16 + 0000000000000000DA0100001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 1 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E65002000000000000054FBFFFFAD00000030FEFFFF1A010000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000A0FCFFFFAD00000030FEFFFFFE010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000073020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000C0F9FFFFAD00000050FBFFFFD1020000000000004F00000090010000730200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000000000000C0F9FFFFEE01000030FEFFFF6F0200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000073020000400600007702000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000C0F9FFFFD502000000000000B80300000000000077020000400600005A0300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2026 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000250319600000000000000030002503103736275027362000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + 1 + Debug + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000000060000B7000000 + + + 16 + 54FBFFFFAD000000C0FFFFFF15010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000EF010000 + + + 16 + A4000000D30000003402000063020000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100007A010000 + + + 16 + A4000000D30000008701000076020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200003D06000041030000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200001D06000041030000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200001D06000041030000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200001D06000041030000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200003D06000041030000 + + + 16 + A4000000D30000003402000063020000 + + + + 1936 + 1936 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200003D06000041030000 + + + 16 + A4000000D30000003402000063020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200001D06000041030000 + + + 16 + A4000000D30000003402000063020000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200001D06000041030000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200001D06000041030000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200001D06000041030000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200001D06000041030000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100007A010000 + + + 16 + A4000000D30000008701000076020000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D0100007A010000 + + + 16 + A4000000D30000008701000076020000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000000C020000200300005A030000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200001D06000041030000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD0500009E000000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000073010000 + + + 16 + A4000000D30000003402000063020000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000EF010000 + + + 16 + A4000000D30000008701000076020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + A4000000D3000000DC0200003B010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000DF010000 + + + 16 + A4000000D30000008701000076020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200001D06000041030000 + + + 16 + A4000000D30000003402000063020000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 27030000230200001D06000041030000 + + + 16 + A4000000D30000003402000063020000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000005A030000400600006D030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2618 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000B700000000060000BB000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E65002000000000000054FBFFFFAD000000C0FFFFFF15010000940100004F00000000060000B70000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E00200008C010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000A0FCFFFFAD00000030FEFFFFEA010000E00200004F000000700400008C0100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F0000009401000008020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000C0F9FFFFAD00000050FBFFFFF1010000000000004F00000090010000080200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000008020000400600000C020000010000000100001004000000010000005CFEFFFF8400000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000001000000C4FCFFFFF5010000C0FFFFFF43030000240300000C020000400600005A03000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFF200300000C020000240300005A03000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000008C0100007004000090010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000000000000C0F9FFFFEE01000030FEFFFF56020000000000009001000070040000F80100000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2026 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000250319600000000000000030002503103736275027362000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 0 + + .\main.c + 0 + 96 + 105 + 1 + + 0 + + + + +
diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/zuolan.uvopt b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/zuolan.uvopt new file mode 100644 index 0000000..06997ce --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/zuolan.uvopt @@ -0,0 +1,295 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + + + + + + + + + + + BIN\STCMON51.DLL + + + + 0 + STCMON51 + -S5 -B115200 -O0 -U0 + + + 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 + VDM51 + + + + + + + 0 + 1 + Dis_Data,0x0A + + + 1 + 1 + Dis_Data_index,0x0A + + + + + 1 + 0 + Dis_Data + 0 + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Ultrasonic.c + Ultrasonic.c + 0 + 0 + + + +
diff --git a/题目/真题/8 第八届国赛_左岚/第八届国赛/User/zuolan.uvproj b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/zuolan.uvproj new file mode 100644 index 0000000..e239bec --- /dev/null +++ b/题目/真题/8 第八届国赛_左岚/第八届国赛/User/zuolan.uvproj @@ -0,0 +1,410 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 10 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + iic.c + 1 + ..\Driver\iic.c + + + Ultrasonic.c + 1 + ..\Driver\Ultrasonic.c + + + + + + + +
diff --git a/题目/真题/8 第八届省赛_左岚/test8/.vscode/settings.json b/题目/真题/8 第八届省赛_左岚/test8/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/Init.c b/题目/真题/8 第八届省赛_左岚/test8/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/Init.h b/题目/真题/8 第八届省赛_左岚/test8/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/Key.c b/题目/真题/8 第八届省赛_左岚/test8/Driver/Key.c new file mode 100644 index 0000000..b2b89ed --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/Key.c @@ -0,0 +1,15 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + P44 = 0; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + return temp; +} \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/Key.h b/题目/真题/8 第八届省赛_左岚/test8/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/Led.c b/题目/真题/8 第八届省赛_左岚/test8/Driver/Led.c new file mode 100644 index 0000000..4749a48 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/Led.c @@ -0,0 +1,21 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/Led.h b/题目/真题/8 第八届省赛_左岚/test8/Driver/Led.h new file mode 100644 index 0000000..e50c9a7 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/Led.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/Seg.c b/题目/真题/8 第八届省赛_左岚/test8/Driver/Seg.c new file mode 100644 index 0000000..b0b6a73 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/Seg.c @@ -0,0 +1,24 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 - C +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 0xbf, 0xc6}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/Seg.h b/题目/真题/8 第八届省赛_左岚/test8/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/ds1302.c b/题目/真题/8 第八届省赛_左岚/test8/Driver/ds1302.c new file mode 100644 index 0000000..9458779 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/ds1302.c @@ -0,0 +1,83 @@ +/* # DS1302代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "ds1302.h" +#include "REG52.H" +#include "intrins.h" +sbit SCK = P1 ^ 7; +sbit SDA = P2 ^ 3; +sbit RST = P1 ^ 3; +// +void Write_Ds1302(unsigned char temp) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + SCK = 0; + SDA = temp & 0x01; + temp >>= 1; + SCK = 1; + } +} + +// +void Write_Ds1302_Byte(unsigned char address, unsigned char dat) +{ + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + Write_Ds1302(dat); + RST = 0; +} + +// +unsigned char Read_Ds1302_Byte(unsigned char address) +{ + unsigned char i, temp = 0x00; + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + RST = 1; + _nop_(); + Write_Ds1302(address); + for (i = 0; i < 8; i++) + { + SCK = 0; + temp >>= 1; + if (SDA) + temp |= 0x80; + SCK = 1; + } + RST = 0; + _nop_(); + SCK = 0; + _nop_(); + SCK = 1; + _nop_(); + SDA = 0; + _nop_(); + SDA = 1; + _nop_(); + return (temp); +} +void Set_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + for (i = 0; i < 3; i++) + Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 +} +void Read_Rtc(unsigned char *ucRtc) +{ + unsigned char i; + for (i = 0; i < 3; i++) + ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); +} \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/ds1302.h b/题目/真题/8 第八届省赛_左岚/test8/Driver/ds1302.h new file mode 100644 index 0000000..e8bfdf4 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/ds1302.h @@ -0,0 +1,2 @@ +void Set_Rtc(unsigned char *ucRtc); +void Read_Rtc(unsigned char *ucRtc); \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/onewire.c b/题目/真题/8 第八届省赛_左岚/test8/Driver/onewire.c new file mode 100644 index 0000000..8efce41 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/onewire.c @@ -0,0 +1,98 @@ +/* # 单总线代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "onewire.h" +#include "REG52.H" +#include "intrins.h" +sbit DQ = P1 ^ 4; // 单总线数据口 +void Delay4us(void) //@12.000MHz +{ + unsigned char data i; + + _nop_(); + _nop_(); + i = 9; + while (--i) + ; +} + +// +void Delay_OneWire(unsigned int t) +{ + unsigned char i; + while (t--) + { + for (i = 0; i < 12; i++) + ; + } +} + +// +void Write_DS18B20(unsigned char dat) +{ + unsigned char i; + for (i = 0; i < 8; i++) + { + DQ = 0; + DQ = dat & 0x01; + Delay_OneWire(5); + DQ = 1; + dat >>= 1; + } + Delay_OneWire(5); +} + +// +unsigned char Read_DS18B20(void) +{ + unsigned char i; + unsigned char dat; + + for (i = 0; i < 8; i++) + { + DQ = 0; + dat >>= 1; + DQ = 1; + Delay4us(); + if (DQ) + { + dat |= 0x80; + } + Delay_OneWire(5); + } + return dat; +} + +// +bit init_ds18b20(void) +{ + bit initflag = 0; + + DQ = 1; + Delay_OneWire(12); + DQ = 0; + Delay_OneWire(80); + DQ = 1; + Delay_OneWire(10); + initflag = DQ; + Delay_OneWire(5); + + return initflag; +} + +float rd_temperature() +{ + unsigned char low, high; + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0x44); // 启动温度转换 + Delay_OneWire(200); // 等待温度转换 + init_ds18b20(); + Write_DS18B20(0xcc); // 跳过ROM + Write_DS18B20(0xbe); // 读取温度值 + low = Read_DS18B20(); + high = Read_DS18B20(); + return (float)(high << 8 | low) * 0.0625; +} \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/Driver/onewire.h b/题目/真题/8 第八届省赛_左岚/test8/Driver/onewire.h new file mode 100644 index 0000000..f9d8aa4 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/Driver/onewire.h @@ -0,0 +1 @@ +float rd_temperature(); \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Init.lst b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Init.lst new file mode 100644 index 0000000..10760d8 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 04/01/2024 18:46:25 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Key.lst b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Key.lst new file mode 100644 index 0000000..c1805be --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Key.lst @@ -0,0 +1,39 @@ +C51 COMPILER V9.59.0.0 KEY 04/01/2024 18:46:25 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 P44 = 0; + 6 1 if (P33 == 0) + 7 1 temp = 4; + 8 1 if (P32 == 0) + 9 1 temp = 5; + 10 1 if (P31 == 0) + 11 1 temp = 6; + 12 1 if (P30 == 0) + 13 1 temp = 7; + 14 1 return temp; + 15 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 25 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Led.lst b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Led.lst new file mode 100644 index 0000000..de94a4a --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Led.lst @@ -0,0 +1,45 @@ +C51 COMPILER V9.59.0.0 LED 04/01/2024 18:46:25 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 58 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 2 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Seg.lst b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Seg.lst new file mode 100644 index 0000000..919d2d5 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Seg.lst @@ -0,0 +1,48 @@ +C51 COMPILER V9.59.0.0 SEG 04/01/2024 18:46:25 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 - C + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, + 4 0xbf, 0xc6}; + 5 // λѡ + 6 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 7 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 8 { + 9 1 // ֶ + 10 1 P0 = 0xff; + 11 1 P2 = P2 & 0x1f | 0xe0; + 12 1 + 13 1 // ѡʾλ + 14 1 P0 = seg_wela[wela]; + 15 1 P2 = P2 & 0x1f | 0xc0; + 16 1 P2 &= 0x1f; + 17 1 + 18 1 // ѡʾ + 19 1 P0 = seg_dula[dula]; + 20 1 if (point) + 21 1 P0 &= 0x7f; + 22 1 P2 = P2 & 0x1f | 0xe0; + 23 1 P2 &= 0x1f; + 24 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 21 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Uart.lst b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Ultrasonic.lst b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Listings/ds1302.lst b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/ds1302.lst new file mode 100644 index 0000000..eda1123 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 04/01/2024 18:46:25 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 04/01/2024 18:46:25 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Listings/iic.lst b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/iic.lst new file mode 100644 index 0000000..27e3624 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/iic.lst @@ -0,0 +1,237 @@ +C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + 143 // 写入的值是数字值0-255,而不是模拟值 + 144 void Da_Write(unsigned char dat) + 145 { + 146 1 // 选择芯片为PCF + 147 1 I2CStart(); + 148 1 I2CSendByte(0x90); + 149 1 I2CWaitAck(); + 150 1 + 151 1 I2CSendByte(0x41); + 152 1 I2CWaitAck(); + 153 1 I2CSendByte(dat); + 154 1 I2CWaitAck(); + 155 1 I2CStop(); + 156 1 } + 157 + 158 /// @brief EEPROM 写函数 + 159 /// @param EEPROM_String 写入的数组指针(如果只写入一个数据,那么要用&data) + 160 /// @param addr 8的倍数 + 161 /// @param num 写入的数组大小 + 162 void EEPROM_Write(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 163 { + 164 1 // 选择芯片为EEPROM,模式为写 + 165 1 I2CStart(); + 166 1 I2CSendByte(0xA0); + 167 1 I2CWaitAck(); + 168 1 + 169 1 I2CSendByte(addr); // 写入的数据的地址 + 170 1 I2CWaitAck(); + 171 1 while (num--) + 172 1 { + 173 2 I2CSendByte(*EEPROM_String++); + 174 2 I2CWaitAck(); + 175 2 I2C_Delay(200); + 176 2 } + 177 1 I2CStop(); + C51 COMPILER V9.59.0.0 IIC 02/24/2024 21:37:53 PAGE 4 + + 178 1 } + 179 /// @brief EEPROM 读函数 + 180 /// @param EEPROM_String 读取的数组指针(如果只读取一个数据,那么要用&data) + 181 /// @param addr 8的倍数 + 182 /// @param num 读取的数组大小 + 183 void EEPROM_Read(unsigned char *EEPROM_String, unsigned char addr, unsigned char num) + 184 { + 185 1 // 选择芯片为EEPROM,模式为写 + 186 1 I2CStart(); + 187 1 I2CSendByte(0xA0); + 188 1 I2CWaitAck(); + 189 1 + 190 1 I2CSendByte(addr); + 191 1 I2CWaitAck(); + 192 1 + 193 1 // 选择芯片为EEPROM,模式为读 + 194 1 I2CStart(); + 195 1 I2CSendByte(0xA1); + 196 1 I2CWaitAck(); + 197 1 while (num--) + 198 1 { + 199 2 *EEPROM_String++ = I2CReceiveByte(); + 200 2 if (num) + 201 2 I2CSendAck(0); + 202 2 else + 203 2 I2CSendAck(1); // 停止读取 + 204 2 } + 205 1 I2CStop(); + 206 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 378 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 10 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Listings/main.lst b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/main.lst new file mode 100644 index 0000000..8dbdb69 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/main.lst @@ -0,0 +1,344 @@ +C51 COMPILER V9.59.0.0 MAIN 04/01/2024 18:46:25 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ʱ䷽ */ + 12 uchar ucRtc[3] = {0x23, 0x59, 0x50}; // ʼʱʱ23:59:50 + 13 uchar alarmRtc[3] = {0x00, 0x00, 0x00}; // ʼʱ00:00:00 + 14 uchar setUcRtc[3]; // ʱ ʮ + 15 uchar setAlarmRtc[3]; // ʮ + 16 uchar setUcRtc_index; + 17 uchar setAlarmRtc_index; + 18 /* ̷ */ + 19 uchar Key_Slow_Down; + 20 + 21 /* ʱ䷽ */ + 22 uint time_all_1s; + 23 uint time_blink_1s; // 1s˸ + 24 uchar time_200ms; + 25 uint time_5s; + 26 /* ݷ */ + 27 uchar T_value; // ¶ֵ + 28 /* ʾ */ + 29 uchar Seg_show_mode; // 0 ʱʾ 1 ʱ 2 3 ¶ʾ + 30 /* ж */ + 31 bit Seg_blink_flag; // ˸־ + 32 bit Led_blink_flag; // LED˸־ + 33 bit ring_flag; // Ӵ־ + 34 /* ݴ */ + 35 void Data_Proc() + 36 { + 37 1 if (time_all_1s % 500 == 0) + 38 1 { + 39 2 // ʱȡ + 40 2 Read_Rtc(ucRtc); + 41 2 if (ucRtc[0] == alarmRtc[0] && ucRtc[1] == alarmRtc[1] && ucRtc[2] == alarmRtc[2]) + 42 2 // Ӵ + 43 2 ring_flag = 1; + 44 2 } + 45 1 if (time_all_1s % 500 == 0) + 46 1 { + 47 2 // ¶ȶȡ + 48 2 T_value = rd_temperature(); + 49 2 } + 50 1 } + 51 /* ̴ */ + 52 void Key_Proc() + 53 { + 54 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + C51 COMPILER V9.59.0.0 MAIN 04/01/2024 18:46:25 PAGE 2 + + 55 1 uchar i; + 56 1 if (time_all_1s % 10) + 57 1 return; + 58 1 Key_Val = Key_Read(); + 59 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 60 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 61 1 Key_Old = Key_Val; + 62 1 switch (Seg_show_mode) + 63 1 { + 64 2 case 0: + 65 2 if (Key_Down == 7) + 66 2 { + 67 3 // ʱ + 68 3 for (i = 0; i < 3; i++) + 69 3 { + 70 4 setUcRtc[i] = ucRtc[i] / 16 * 10 + ucRtc[i] % 16; + 71 4 } + 72 3 Seg_show_mode = 1; + 73 3 } + 74 2 else if (Key_Down == 6) + 75 2 { + 76 3 // + 77 3 for (i = 0; i < 3; i++) + 78 3 { + 79 4 setAlarmRtc[i] = alarmRtc[i] / 16 * 10 + alarmRtc[i] % 16; + 80 4 } + 81 3 Seg_show_mode = 2; + 82 3 } + 83 2 if (Key_Old == 4) + 84 2 // ¶ʾ + 85 2 Seg_show_mode = 3; + 86 2 break; + 87 2 + 88 2 case 1: + 89 2 if (Key_Down == 7) + 90 2 setUcRtc_index++; + 91 2 if (setUcRtc_index >= 3) + 92 2 { + 93 3 // ʱʾ + 94 3 Seg_show_mode = 0; + 95 3 setUcRtc_index = 0; + 96 3 for (i = 0; i < 3; i++) + 97 3 ucRtc[i] = setUcRtc[i] / 10 << 4 | setUcRtc[i] % 10; + 98 3 Set_Rtc(ucRtc); + 99 3 } + 100 2 if (Key_Down == 5) + 101 2 { + 102 3 if (setUcRtc_index == 0) + 103 3 // ޸Сʱ + 104 3 setUcRtc[setUcRtc_index] = (setUcRtc[setUcRtc_index] >= 24) ? 24 + 105 3 : setUcRtc[setUcRtc_index] + 1 + -; + 106 3 else + 107 3 // ޸ķ + 108 3 setUcRtc[setUcRtc_index] = (setUcRtc[setUcRtc_index] >= 60) ? 60 + 109 3 : setUcRtc[setUcRtc_index] + 1 + -; + 110 3 } + 111 2 else if (Key_Down == 4) + 112 2 // ޸ʱ + 113 2 setUcRtc[setUcRtc_index] = (setUcRtc[setUcRtc_index] == 0) ? 0 + 114 2 : setUcRtc[setUcRtc_index] - 1; + C51 COMPILER V9.59.0.0 MAIN 04/01/2024 18:46:25 PAGE 3 + + 115 2 break; + 116 2 case 2: + 117 2 if (Key_Down == 6) + 118 2 setAlarmRtc_index++; + 119 2 if (setAlarmRtc_index >= 3) + 120 2 { + 121 3 // ʱʾ + 122 3 Seg_show_mode = 0; + 123 3 setAlarmRtc_index = 0; + 124 3 for (i = 0; i < 3; i++) + 125 3 alarmRtc[i] = setAlarmRtc[i] / 10 << 4 | setAlarmRtc[i] % 10; + 126 3 } + 127 2 if (Key_Down == 5) + 128 2 { + 129 3 if (setAlarmRtc_index == 0) + 130 3 // ޸Сʱ + 131 3 setAlarmRtc[setAlarmRtc_index] = (setAlarmRtc[setAlarmRtc_index] >= 24) ? 24 + 132 3 : setAlarmRtc[setA + -larmRtc_index] + 1; + 133 3 else + 134 3 // ޸ķ + 135 3 setAlarmRtc[setUcRtc_index] = (setAlarmRtc[setUcRtc_index] >= 60) ? 60 + 136 3 : setAlarmRtc[setAlarmRt + -c_index] + 1; + 137 3 } + 138 2 else if (Key_Down == 4) + 139 2 // ޸ʱ + 140 2 setAlarmRtc[setUcRtc_index] = (setAlarmRtc[setAlarmRtc_index] == 0) ? 0 + 141 2 : setAlarmRtc[setAlarmRtc_ + -index] - 1; + 142 2 break; + 143 2 case 3: + 144 2 if (Key_Up == 4) + 145 2 // ʱʾ + 146 2 Seg_show_mode = 0; + 147 2 break; + 148 2 } + 149 1 if (ring_flag && (Key_Down != 0)) + 150 1 ring_flag = 0; + 151 1 } + 152 /* ܴ */ + 153 void Seg_Proc() + 154 { + 155 1 if (time_all_1s % 20) + 156 1 return; + 157 1 switch (Seg_show_mode) + 158 1 { + 159 2 case 0: + 160 2 /* ʱʾ */ + 161 2 Seg_Buf[0] = ucRtc[0] / 16; + 162 2 Seg_Buf[1] = ucRtc[0] % 16; + 163 2 Seg_Buf[2] = 11; //- + 164 2 Seg_Buf[3] = ucRtc[1] / 16; + 165 2 Seg_Buf[4] = ucRtc[1] % 16; + 166 2 Seg_Buf[5] = 11; //- + 167 2 Seg_Buf[6] = ucRtc[2] / 16; + 168 2 Seg_Buf[7] = ucRtc[2] % 16; + 169 2 break; + 170 2 + 171 2 case 1: + 172 2 /* ʱ */ + 173 2 Seg_Buf[0] = setUcRtc[0] / 10; + C51 COMPILER V9.59.0.0 MAIN 04/01/2024 18:46:25 PAGE 4 + + 174 2 Seg_Buf[1] = setUcRtc[0] % 10; + 175 2 Seg_Buf[2] = 11; //- + 176 2 Seg_Buf[3] = setUcRtc[1] / 10; + 177 2 Seg_Buf[4] = setUcRtc[1] % 10; + 178 2 Seg_Buf[5] = 11; //- + 179 2 Seg_Buf[6] = setUcRtc[2] / 10; + 180 2 Seg_Buf[7] = setUcRtc[2] % 10; + 181 2 Seg_Buf[setUcRtc_index * 3] = Seg_blink_flag ? 10 + 182 2 : Seg_Buf[setUcRtc_index * 3]; + 183 2 Seg_Buf[setUcRtc_index * 3 + 1] = Seg_blink_flag ? 10 + 184 2 : Seg_Buf[setUcRtc_index * 3 + 1]; + 185 2 break; + 186 2 case 2: + 187 2 /* */ + 188 2 Seg_Buf[0] = setAlarmRtc[0] / 10; + 189 2 Seg_Buf[1] = setAlarmRtc[0] % 10; + 190 2 Seg_Buf[2] = 11; //- + 191 2 Seg_Buf[3] = setAlarmRtc[1] / 10; + 192 2 Seg_Buf[4] = setAlarmRtc[1] % 10; + 193 2 Seg_Buf[5] = 11; //- + 194 2 Seg_Buf[6] = setAlarmRtc[2] / 10; + 195 2 Seg_Buf[7] = setAlarmRtc[2] % 10; + 196 2 Seg_Buf[setAlarmRtc_index * 3] = Seg_blink_flag ? 10 + 197 2 : Seg_Buf[setAlarmRtc_index * 3]; + 198 2 Seg_Buf[setAlarmRtc_index * 3 + 1] = Seg_blink_flag ? 10 + 199 2 : Seg_Buf[setAlarmRtc_index * 3 + 1]; + 200 2 break; + 201 2 break; + 202 2 case 3: + 203 2 /* ¶ʾ */ + 204 2 memset(Seg_Buf, 10, 5); + 205 2 Seg_Buf[5] = T_value / 10; + 206 2 Seg_Buf[6] = T_value % 10; + 207 2 Seg_Buf[7] = 12; // C + 208 2 break; + 209 2 } + 210 1 } + 211 + 212 /* LED */ + 213 void Led_Proc() + 214 { + 215 1 ucLed[0] = Led_blink_flag; + 216 1 } + 217 + 218 /* ʱ0жϳʼ */ + 219 void Timer0_Init(void) // 1@12.000MHz + 220 { + 221 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 222 1 TMOD &= 0xF0; // öʱģʽ + 223 1 TL0 = 0x18; // öʱʼֵ + 224 1 TH0 = 0xFC; // öʱʼֵ + 225 1 TF0 = 0; // TF0־ + 226 1 TR0 = 1; // ʱ0ʼʱ + 227 1 ET0 = 1; + 228 1 EA = 1; + 229 1 } + 230 + 231 /* ʱ0жϺ */ + 232 void Timer0_ISR(void) interrupt 1 + 233 { + 234 1 if (++time_all_1s == 1000) + 235 1 time_all_1s = 0; + C51 COMPILER V9.59.0.0 MAIN 04/01/2024 18:46:25 PAGE 5 + + 236 1 if (++Seg_Pos == 8) + 237 1 Seg_Pos = 0; + 238 1 if (Seg_show_mode == 1 || Seg_show_mode == 2) + 239 1 { + 240 2 // ýʱǿʼмʱ + 241 2 if (++time_blink_1s == 1000) + 242 2 { + 243 3 // 1s˸ + 244 3 time_blink_1s = 0; + 245 3 Seg_blink_flag ^= 1; + 246 3 } + 247 2 } + 248 1 else + 249 1 { + 250 2 // ýʱDzмʱ + 251 2 time_blink_1s = 0; + 252 2 Seg_blink_flag = 0; + 253 2 } + 254 1 if (ring_flag) + 255 1 { + 256 2 // Ӵʱǿʼʱ + 257 2 if (++time_200ms == 200) + 258 2 Led_blink_flag ^= 1; + 259 2 if (++time_5s == 5000) + 260 2 ring_flag = 0; + 261 2 } + 262 1 else + 263 1 { + 264 2 // ֹΪ°ڶμʱbug + 265 2 Led_blink_flag = 0; + 266 2 time_5s = 0; + 267 2 time_200ms = 0; + 268 2 } + 269 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 270 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 271 1 } + 272 + 273 void Delay750ms(void) //@12.000MHz + 274 { + 275 1 unsigned char data i, j, k; + 276 1 + 277 1 _nop_(); + 278 1 _nop_(); + 279 1 i = 35; + 280 1 j = 51; + 281 1 k = 182; + 282 1 do + 283 1 { + 284 2 do + 285 2 { + 286 3 while (--k) + 287 3 ; + 288 3 } while (--j); + 289 2 } while (--i); + 290 1 } + 291 void main() + 292 { + 293 1 System_Init(); + 294 1 Timer0_Init(); + 295 1 Set_Rtc(ucRtc); + 296 1 rd_temperature(); + 297 1 Delay750ms(); + C51 COMPILER V9.59.0.0 MAIN 04/01/2024 18:46:25 PAGE 6 + + 298 1 while (1) + 299 1 { + 300 2 Data_Proc(); + 301 2 Key_Proc(); + 302 2 Seg_Proc(); + 303 2 Led_Proc(); + 304 2 } + 305 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 1276 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 54 1 + IDATA SIZE = ---- ---- + BIT SIZE = 3 ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Listings/onewire.lst b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/onewire.lst new file mode 100644 index 0000000..55f069a --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/onewire.lst @@ -0,0 +1,125 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 04/01/2024 18:46:25 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit DQ = P1 ^ 4; // 单总线数据口 + 10 void Delay4us(void) //@12.000MHz + 11 { + 12 1 unsigned char data i; + 13 1 + 14 1 _nop_(); + 15 1 _nop_(); + 16 1 i = 9; + 17 1 while (--i) + 18 1 ; + 19 1 } + 20 + 21 // + 22 void Delay_OneWire(unsigned int t) + 23 { + 24 1 unsigned char i; + 25 1 while (t--) + 26 1 { + 27 2 for (i = 0; i < 12; i++) + 28 2 ; + 29 2 } + 30 1 } + 31 + 32 // + 33 void Write_DS18B20(unsigned char dat) + 34 { + 35 1 unsigned char i; + 36 1 for (i = 0; i < 8; i++) + 37 1 { + 38 2 DQ = 0; + 39 2 DQ = dat & 0x01; + 40 2 Delay_OneWire(5); + 41 2 DQ = 1; + 42 2 dat >>= 1; + 43 2 } + 44 1 Delay_OneWire(5); + 45 1 } + 46 + 47 // + 48 unsigned char Read_DS18B20(void) + 49 { + 50 1 unsigned char i; + 51 1 unsigned char dat; + 52 1 + 53 1 for (i = 0; i < 8; i++) + C51 COMPILER V9.59.0.0 ONEWIRE 04/01/2024 18:46:25 PAGE 2 + + 54 1 { + 55 2 DQ = 0; + 56 2 dat >>= 1; + 57 2 DQ = 1; + 58 2 Delay4us(); + 59 2 if (DQ) + 60 2 { + 61 3 dat |= 0x80; + 62 3 } + 63 2 Delay_OneWire(5); + 64 2 } + 65 1 return dat; + 66 1 } + 67 + 68 // + 69 bit init_ds18b20(void) + 70 { + 71 1 bit initflag = 0; + 72 1 + 73 1 DQ = 1; + 74 1 Delay_OneWire(12); + 75 1 DQ = 0; + 76 1 Delay_OneWire(80); + 77 1 DQ = 1; + 78 1 Delay_OneWire(10); + 79 1 initflag = DQ; + 80 1 Delay_OneWire(5); + 81 1 + 82 1 return initflag; + 83 1 } + 84 + 85 float rd_temperature() + 86 { + 87 1 unsigned char low, high; + 88 1 init_ds18b20(); + 89 1 Write_DS18B20(0xcc); // 跳过ROM + 90 1 Write_DS18B20(0x44); // 启动温度转换 + 91 1 Delay_OneWire(200); // 等待温度转换 + 92 1 init_ds18b20(); + 93 1 Write_DS18B20(0xcc); // 跳过ROM + 94 1 Write_DS18B20(0xbe); // 读取温度值 + 95 1 low = Read_DS18B20(); + 96 1 high = Read_DS18B20(); + 97 1 return (float)(high << 8 | low) * 0.0625; + 98 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 212 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Listings/zuolan.m51 b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/zuolan.m51 new file mode 100644 index 0000000..71ffc80 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Listings/zuolan.m51 @@ -0,0 +1,916 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\ds1302.obj, .\Objects\onewire.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\ds1302.obj (DS1302) + .\Objects\onewire.obj (ONEWIRE) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) + D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0015H UNIT ?DT?SEG + DATA 001DH 0002H UNIT ?DT?LED + 001FH 0001H *** GAP *** + BIT 0020H.0 0000H.3 UNIT ?BI?MAIN + BIT 0020H.3 0000H.1 UNIT _BIT_GROUP_ + 0020H.4 0000H.4 *** GAP *** + DATA 0021H 0036H UNIT ?DT?MAIN + DATA 0057H 0004H UNIT _DATA_GROUP_ + IDATA 005BH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0007H UNIT ?PR?LED_PROC?MAIN + 000AH 0001H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 02A3H UNIT ?C?LIB_CODE + CODE 02B1H 0238H UNIT ?PR?KEY_PROC?MAIN + CODE 04E9H 015CH UNIT ?PR?SEG_PROC?MAIN + CODE 0645H 00DAH UNIT ?PR?TIMER0_ISR?MAIN + CODE 071FH 008CH UNIT ?C_C51STARTUP + CODE 07ABH 0048H UNIT ?C_INITSEG + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 2 + + + CODE 07F3H 0040H UNIT ?PR?DATA_PROC?MAIN + CODE 0833H 003EH UNIT ?PR?_SET_RTC?DS1302 + CODE 0871H 003DH UNIT ?PR?_READ_DS1302_BYTE?DS1302 + CODE 08AEH 003BH UNIT ?PR?RD_TEMPERATURE?ONEWIRE + CODE 08E9H 003AH UNIT ?PR?_LED_DISP?LED + CODE 0923H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 0959H 0031H UNIT ?PR?_READ_RTC?DS1302 + CODE 098AH 0027H UNIT ?PR?_WRITE_DS18B20?ONEWIRE + CODE 09B1H 0027H UNIT ?PR?INIT_DS18B20?ONEWIRE + CODE 09D8H 0026H UNIT ?PR?READ_DS18B20?ONEWIRE + CODE 09FEH 0023H UNIT ?PR?MAIN?MAIN + CODE 0A21H 001EH UNIT ?PR?_DELAY_ONEWIRE?ONEWIRE + CODE 0A3FH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 0A5CH 001CH UNIT ?PR?_WRITE_DS1302?DS1302 + CODE 0A78H 0019H UNIT ?PR?KEY_READ?KEY + CODE 0A91H 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 0AA6H 0014H UNIT ?PR?_WRITE_DS1302_BYTE?DS1302 + CODE 0ABAH 000FH UNIT ?PR?DELAY750MS?MAIN + CODE 0AC9H 0007H UNIT ?PR?DELAY4US?ONEWIRE + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +------------------------------------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?_SET_RTC?DS1302 + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +--> ?PR?DELAY750MS?MAIN + +--> ?PR?DATA_PROC?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?_SET_RTC?DS1302 ----- ----- 0058H 0003H + +--> ?PR?_WRITE_DS1302_BYTE?DS1302 + +?PR?_WRITE_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?RD_TEMPERATURE?ONEWIRE ----- ----- ----- ----- + +--> ?PR?INIT_DS18B20?ONEWIRE + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 3 + + + +--> ?PR?_WRITE_DS18B20?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +--> ?PR?READ_DS18B20?ONEWIRE + +?PR?INIT_DS18B20?ONEWIRE 0020H.3 0000H.1 ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?_WRITE_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?READ_DS18B20?ONEWIRE ----- ----- ----- ----- + +--> ?PR?DELAY4US?ONEWIRE + +--> ?PR?_DELAY_ONEWIRE?ONEWIRE + +?PR?DATA_PROC?MAIN ----- ----- ----- ----- + +--> ?PR?_READ_RTC?DS1302 + +--> ?PR?RD_TEMPERATURE?ONEWIRE + +?PR?_READ_RTC?DS1302 ----- ----- 0057H 0003H + +--> ?PR?_READ_DS1302_BYTE?DS1302 + +?PR?_READ_DS1302_BYTE?DS1302 ----- ----- ----- ----- + +--> ?PR?_WRITE_DS1302?DS1302 + +?PR?KEY_PROC?MAIN ----- ----- 0057H 0001H + +--> ?PR?KEY_READ?KEY + +--> ?PR?_SET_RTC?DS1302 + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:0645H PUBLIC Timer0_ISR + D:0025H PUBLIC ucRtc + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:0028H PUBLIC time_200ms + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + B:0020H.0 PUBLIC Led_blink_flag + D:00F8H PUBLIC P7 + C:0003H PUBLIC Led_Proc + D:0029H PUBLIC Seg_Point + D:00A8H PUBLIC IE + B:0020H.1 PUBLIC Seg_blink_flag + C:04E9H PUBLIC Seg_Proc + D:00B8H PUBLIC IP + D:0031H PUBLIC Seg_Buf + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 4 + + + C:02B1H PUBLIC Key_Proc + D:0039H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:09FEH PUBLIC main + D:003AH PUBLIC time_blink_1s + C:0A91H PUBLIC Timer0_Init + D:003CH PUBLIC Key_Slow_Down + D:003DH PUBLIC setUcRtc_index + B:0020H.2 PUBLIC ring_flag + D:003EH PUBLIC setUcRtc + D:0041H PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:0042H PUBLIC time_5s + D:0044H PUBLIC alarmRtc + D:008EH PUBLIC AUXR + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:0047H PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + D:0048H PUBLIC time_all_1s + D:004AH PUBLIC T_value + B:0088H.4 PUBLIC TR0 + D:004BH PUBLIC setAlarmRtc_index + D:004CH PUBLIC setAlarmRtc + D:004FH PUBLIC ucLed + C:0ABAH PUBLIC Delay750ms + C:07F3H PUBLIC Data_Proc + D:00D0H PUBLIC PSW + ------- PROC DATA_PROC + C:07F3H LINE# 35 + C:07F3H LINE# 36 + C:07F3H LINE# 37 + C:0802H LINE# 38 + C:0802H LINE# 40 + C:080AH LINE# 41 + C:0819H LINE# 43 + C:081BH LINE# 44 + C:081BH LINE# 45 + C:082AH LINE# 46 + C:082AH LINE# 48 + C:0832H LINE# 49 + C:0832H LINE# 50 + ------- ENDPROC DATA_PROC + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + D:0057H SYMBOL i + ------- ENDDO + C:02B1H LINE# 52 + C:02B1H LINE# 53 + C:02B1H LINE# 56 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 5 + + + C:02C3H LINE# 58 + C:02C8H LINE# 59 + C:02D1H LINE# 60 + C:02D7H LINE# 61 + C:02DAH LINE# 62 + C:02F5H LINE# 63 + C:02F5H LINE# 64 + C:02F5H LINE# 65 + C:02FEH LINE# 66 + C:02FEH LINE# 68 + C:030BH LINE# 69 + C:030BH LINE# 70 + C:0326H LINE# 71 + C:032AH LINE# 72 + C:032DH LINE# 73 + C:032FH LINE# 74 + C:0335H LINE# 75 + C:0335H LINE# 77 + C:0342H LINE# 78 + C:0342H LINE# 79 + C:035DH LINE# 80 + C:0361H LINE# 81 + C:0364H LINE# 82 + C:0364H LINE# 83 + C:036DH LINE# 85 + C:0370H LINE# 86 + C:0373H LINE# 88 + C:0373H LINE# 89 + C:0379H LINE# 90 + C:037BH LINE# 91 + C:0386H LINE# 92 + C:0386H LINE# 94 + C:0389H LINE# 95 + C:038BH LINE# 96 + C:0398H LINE# 97 + C:03BBH LINE# 98 + C:03C4H LINE# 99 + C:03C4H LINE# 100 + C:03CDH LINE# 101 + C:03CDH LINE# 102 + C:03D1H LINE# 104 + C:03EAH LINE# 108 + C:0403H LINE# 110 + C:0406H LINE# 111 + C:040FH LINE# 113 + C:0420H LINE# 115 + C:0423H LINE# 116 + C:0423H LINE# 117 + C:0429H LINE# 118 + C:042BH LINE# 119 + C:0436H LINE# 120 + C:0436H LINE# 122 + C:0439H LINE# 123 + C:043BH LINE# 124 + C:0448H LINE# 125 + C:046BH LINE# 126 + C:046BH LINE# 127 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 6 + + + C:0474H LINE# 128 + C:0474H LINE# 129 + C:0478H LINE# 131 + C:0495H LINE# 135 + C:04B7H LINE# 137 + C:04B9H LINE# 138 + C:04BFH LINE# 140 + C:04D5H LINE# 142 + C:04D7H LINE# 143 + C:04D7H LINE# 144 + C:04DDH LINE# 146 + C:04DFH LINE# 147 + C:04DFH LINE# 148 + C:04DFH LINE# 149 + C:04E6H LINE# 150 + C:04E8H LINE# 151 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + C:04E9H LINE# 153 + C:04E9H LINE# 154 + C:04E9H LINE# 155 + C:04FBH LINE# 157 + C:0513H LINE# 158 + C:0513H LINE# 159 + C:0513H LINE# 161 + C:051AH LINE# 162 + C:0520H LINE# 163 + C:0523H LINE# 164 + C:052AH LINE# 165 + C:0530H LINE# 166 + C:0533H LINE# 167 + C:053AH LINE# 168 + C:0540H LINE# 169 + C:0541H LINE# 171 + C:0541H LINE# 173 + C:0549H LINE# 174 + C:0552H LINE# 175 + C:0555H LINE# 176 + C:055DH LINE# 177 + C:0566H LINE# 178 + C:0569H LINE# 179 + C:0571H LINE# 180 + C:057AH LINE# 181 + C:0597H LINE# 183 + C:05ABH LINE# 185 + C:05ADH LINE# 186 + C:05ADH LINE# 188 + C:05B5H LINE# 189 + C:05BEH LINE# 190 + C:05C1H LINE# 191 + C:05C9H LINE# 192 + C:05D2H LINE# 193 + C:05D5H LINE# 194 + C:05DDH LINE# 195 + C:05E6H LINE# 196 + C:0603H LINE# 198 + C:0620H LINE# 200 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 7 + + + C:0621H LINE# 201 + C:0621H LINE# 202 + C:0621H LINE# 204 + C:0630H LINE# 205 + C:0638H LINE# 206 + C:0641H LINE# 207 + C:0644H LINE# 208 + C:0644H LINE# 209 + C:0644H LINE# 210 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + C:0003H LINE# 213 + C:0003H LINE# 214 + C:0003H LINE# 215 + C:0009H LINE# 216 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:0A91H LINE# 219 + C:0A91H LINE# 220 + C:0A91H LINE# 221 + C:0A94H LINE# 222 + C:0A97H LINE# 223 + C:0A9AH LINE# 224 + C:0A9DH LINE# 225 + C:0A9FH LINE# 226 + C:0AA1H LINE# 227 + C:0AA3H LINE# 228 + C:0AA5H LINE# 229 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:0645H LINE# 232 + C:0662H LINE# 234 + C:0673H LINE# 235 + C:0679H LINE# 236 + C:0681H LINE# 237 + C:0683H LINE# 238 + C:068FH LINE# 239 + C:068FH LINE# 241 + C:06A0H LINE# 242 + C:06A0H LINE# 244 + C:06A6H LINE# 245 + C:06ABH LINE# 246 + C:06ABH LINE# 247 + C:06ADH LINE# 249 + C:06ADH LINE# 251 + C:06B3H LINE# 252 + C:06B5H LINE# 253 + C:06B5H LINE# 254 + C:06B8H LINE# 255 + C:06B8H LINE# 257 + C:06C0H LINE# 258 + C:06C5H LINE# 259 + C:06D6H LINE# 260 + C:06D8H LINE# 261 + C:06DAH LINE# 263 + C:06DAH LINE# 265 + C:06DCH LINE# 266 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 8 + + + C:06E2H LINE# 267 + C:06E5H LINE# 268 + C:06E5H LINE# 269 + C:06F8H LINE# 270 + C:0704H LINE# 271 + ------- ENDPROC TIMER0_ISR + ------- PROC DELAY750MS + ------- DO + D:0007H SYMBOL i + D:0006H SYMBOL j + D:0005H SYMBOL k + ------- ENDDO + C:0ABAH LINE# 273 + C:0ABAH LINE# 274 + C:0ABAH LINE# 277 + C:0ABBH LINE# 278 + C:0ABCH LINE# 279 + C:0ABEH LINE# 280 + C:0AC0H LINE# 281 + C:0AC2H LINE# 283 + C:0AC2H LINE# 285 + C:0AC2H LINE# 286 + C:0AC4H LINE# 288 + C:0AC6H LINE# 289 + C:0AC8H LINE# 290 + ------- ENDPROC DELAY750MS + ------- PROC MAIN + C:09FEH LINE# 291 + C:09FEH LINE# 292 + C:09FEH LINE# 293 + C:0A01H LINE# 294 + C:0A04H LINE# 295 + C:0A0DH LINE# 296 + C:0A10H LINE# 297 + C:0A13H LINE# 298 + C:0A13H LINE# 299 + C:0A13H LINE# 300 + C:0A16H LINE# 301 + C:0A19H LINE# 302 + C:0A1CH LINE# 303 + C:0A1FH LINE# 304 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:08E9H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 9 + + + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:001DH SYMBOL temp + D:001EH SYMBOL temp_old + ------- ENDDO + C:08E9H LINE# 5 + C:08E9H LINE# 6 + C:08E9H LINE# 10 + C:08ECH LINE# 11 + C:08FBH LINE# 13 + C:0909H LINE# 14 + C:090FH LINE# 15 + C:090FH LINE# 16 + C:0914H LINE# 17 + C:091CH LINE# 18 + C:091FH LINE# 19 + C:0922H LINE# 20 + C:0922H LINE# 21 + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:0923H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0015H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:0923H LINE# 7 + C:0923H LINE# 8 + C:0923H LINE# 10 + C:0926H LINE# 11 + C:092EH LINE# 14 + C:0935H LINE# 15 + C:093DH LINE# 16 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 10 + + + C:0940H LINE# 19 + C:0947H LINE# 20 + C:094AH LINE# 21 + C:094DH LINE# 22 + C:0955H LINE# 23 + C:0958H LINE# 24 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0A78H PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00B0H.3 PUBLIC P33 + B:00C0H.4 PUBLIC P44 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:0A78H LINE# 2 + C:0A78H LINE# 3 + C:0A78H LINE# 4 + C:0A7AH LINE# 5 + C:0A7CH LINE# 6 + C:0A7FH LINE# 7 + C:0A81H LINE# 8 + C:0A84H LINE# 9 + C:0A86H LINE# 10 + C:0A89H LINE# 11 + C:0A8BH LINE# 12 + C:0A8EH LINE# 13 + C:0A90H LINE# 14 + C:0A90H LINE# 15 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:0A3FH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 11 + + + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:0A3FH LINE# 3 + C:0A3FH LINE# 4 + C:0A3FH LINE# 5 + C:0A42H LINE# 6 + C:0A4AH LINE# 7 + C:0A4DH LINE# 9 + C:0A50H LINE# 10 + C:0A58H LINE# 11 + C:0A5BH LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE DS1302 + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:0959H PUBLIC _Read_Rtc + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0833H PUBLIC _Set_Rtc + C:0871H PUBLIC _Read_Ds1302_Byte + B:00A0H.3 PUBLIC SDA + B:0090H.7 PUBLIC SCK + C:0AA6H PUBLIC _Write_Ds1302_Byte + D:00C8H PUBLIC T2CON + C:0A5CH PUBLIC _Write_Ds1302 + B:0090H.3 PUBLIC RST + D:00D0H PUBLIC PSW + ------- PROC _WRITE_DS1302 + D:0007H SYMBOL temp + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0A5CH LINE# 13 + C:0A5CH LINE# 14 + C:0A5CH LINE# 16 + C:0A68H LINE# 17 + C:0A68H LINE# 18 + C:0A6AH LINE# 19 + C:0A6EH LINE# 20 + C:0A72H LINE# 21 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 12 + + + C:0A74H LINE# 22 + C:0A77H LINE# 23 + ------- ENDPROC _WRITE_DS1302 + ------- PROC _WRITE_DS1302_BYTE + D:0007H SYMBOL address + D:0005H SYMBOL dat + C:0AA6H LINE# 26 + C:0AA6H LINE# 27 + C:0AA6H LINE# 28 + C:0AA8H LINE# 29 + C:0AA9H LINE# 30 + C:0AABH LINE# 31 + C:0AACH LINE# 32 + C:0AAEH LINE# 33 + C:0AAFH LINE# 34 + C:0AB2H LINE# 35 + C:0AB7H LINE# 36 + C:0AB9H LINE# 37 + ------- ENDPROC _WRITE_DS1302_BYTE + ------- PROC _READ_DS1302_BYTE + D:0007H SYMBOL address + ------- DO + D:0007H SYMBOL i + D:0005H SYMBOL temp + ------- ENDDO + C:0871H LINE# 40 + C:0871H LINE# 41 + C:0871H LINE# 42 + C:0873H LINE# 43 + C:0875H LINE# 44 + C:0876H LINE# 45 + C:0878H LINE# 46 + C:0879H LINE# 47 + C:087BH LINE# 48 + C:087CH LINE# 49 + C:087FH LINE# 50 + C:088BH LINE# 51 + C:088BH LINE# 52 + C:088DH LINE# 53 + C:0891H LINE# 54 + C:0894H LINE# 55 + C:0897H LINE# 56 + C:0899H LINE# 57 + C:089CH LINE# 58 + C:089EH LINE# 59 + C:089FH LINE# 60 + C:08A1H LINE# 61 + C:08A2H LINE# 62 + C:08A4H LINE# 63 + C:08A5H LINE# 64 + C:08A7H LINE# 65 + C:08A8H LINE# 66 + C:08AAH LINE# 67 + C:08ABH LINE# 68 + C:08ADH LINE# 69 + ------- ENDPROC _READ_DS1302_BYTE + ------- PROC _SET_RTC + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 13 + + + D:0058H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0833H LINE# 70 + C:0839H LINE# 71 + C:0839H LINE# 73 + C:0840H LINE# 74 + C:084CH LINE# 75 + C:086AH LINE# 76 + ------- ENDPROC _SET_RTC + ------- PROC _READ_RTC + D:0057H SYMBOL ucRtc + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:0959H LINE# 78 + C:095FH LINE# 79 + C:095FH LINE# 81 + C:096BH LINE# 82 + C:0989H LINE# 83 + ------- ENDPROC _READ_RTC + ------- ENDMOD DS1302 + + ------- MODULE ONEWIRE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:09D8H PUBLIC Read_DS18B20 + D:00A8H PUBLIC IE + C:0A25H PUBLIC _Delay_OneWire + C:0AC9H PUBLIC Delay4us + C:098AH PUBLIC _Write_DS18B20 + B:0090H.4 PUBLIC DQ + D:00B8H PUBLIC IP + C:09B1H PUBLIC init_ds18b20 + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00C8H PUBLIC T2CON + C:08AEH PUBLIC rd_temperature + D:00D0H PUBLIC PSW + ------- PROC DELAY4US + ------- DO + D:0007H SYMBOL i + ------- ENDDO + C:0AC9H LINE# 10 + C:0AC9H LINE# 11 + C:0AC9H LINE# 14 + C:0ACAH LINE# 15 + C:0ACBH LINE# 16 + C:0ACDH LINE# 17 + C:0ACFH LINE# 19 + ------- ENDPROC DELAY4US + C:0A21H SYMBOL L?0023 + ------- PROC L?0022 + ------- ENDPROC L?0022 + C:0A21H SYMBOL L?0023 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 14 + + + ------- PROC _DELAY_ONEWIRE + D:0006H SYMBOL t + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:0A25H LINE# 22 + C:0A25H LINE# 23 + C:0A25H LINE# 25 + C:0A2FH LINE# 26 + C:0A2FH LINE# 27 + C:0A3EH LINE# 29 + C:0A3EH LINE# 30 + ------- ENDPROC _DELAY_ONEWIRE + ------- PROC _WRITE_DS18B20 + D:0001H SYMBOL dat + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:098AH LINE# 33 + C:098CH LINE# 34 + C:098CH LINE# 36 + C:0998H LINE# 37 + C:0998H LINE# 38 + C:099AH LINE# 39 + C:099EH LINE# 40 + C:09A1H LINE# 41 + C:09A3H LINE# 42 + C:09A7H LINE# 43 + C:09AAH LINE# 44 + ------- ENDPROC _WRITE_DS18B20 + ------- PROC READ_DS18B20 + ------- DO + D:0003H SYMBOL i + D:0004H SYMBOL dat + ------- ENDDO + C:09D8H LINE# 48 + C:09D8H LINE# 49 + C:09D8H LINE# 53 + C:09E4H LINE# 54 + C:09E4H LINE# 55 + C:09E6H LINE# 56 + C:09EAH LINE# 57 + C:09ECH LINE# 58 + C:09EFH LINE# 59 + C:09F2H LINE# 60 + C:09F2H LINE# 61 + C:09F5H LINE# 62 + C:09F5H LINE# 63 + C:09F8H LINE# 64 + C:09FBH LINE# 65 + C:09FDH LINE# 66 + ------- ENDPROC READ_DS18B20 + ------- PROC INIT_DS18B20 + ------- DO + B:0020H.3 SYMBOL initflag + ------- ENDDO + C:09B1H LINE# 69 + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 15 + + + C:09B1H LINE# 70 + C:09B1H LINE# 71 + C:09B3H LINE# 73 + C:09B5H LINE# 74 + C:09BCH LINE# 75 + C:09BEH LINE# 76 + C:09C5H LINE# 77 + C:09C7H LINE# 78 + C:09CEH LINE# 79 + C:09D2H LINE# 80 + C:09D5H LINE# 82 + C:09D7H LINE# 83 + ------- ENDPROC INIT_DS18B20 + ------- PROC RD_TEMPERATURE + ------- DO + D:0001H SYMBOL low + D:0007H SYMBOL high + ------- ENDDO + C:08AEH LINE# 85 + C:08AEH LINE# 86 + C:08AEH LINE# 88 + C:08B1H LINE# 89 + C:08B6H LINE# 90 + C:08BBH LINE# 91 + C:08C2H LINE# 92 + C:08C5H LINE# 93 + C:08CAH LINE# 94 + C:08CFH LINE# 95 + C:08D4H LINE# 96 + C:08D7H LINE# 97 + ------- ENDPROC RD_TEMPERATURE + ------- ENDMOD ONEWIRE + + ------- MODULE ?C?FPMUL + C:000EH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FCAST + C:011EH PUBLIC ?C?FCASTC + C:0119H PUBLIC ?C?FCASTI + C:0114H PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0152H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF + + ------- MODULE ?C?CLDOPTR + C:01D3H PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTOPTR + C:0200H PUBLIC ?C?CSTOPTR + ------- ENDMOD ?C?CSTOPTR + + ------- MODULE ?C?UIDIV + C:0222H PUBLIC ?C?UIDIV + BL51 BANKED LINKER/LOCATER V6.22.2.0 04/01/2024 18:46:25 PAGE 16 + + + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LNEG + C:0277H PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG + + ------- MODULE ?C?MEMSET + C:0285H PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET + +Program Size: data=90.4 xdata=0 code=2767 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/ExtDll.iex b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Init.obj b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Init.obj new file mode 100644 index 0000000..2d9de0a Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Init.obj differ diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Key.obj b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Key.obj new file mode 100644 index 0000000..b991e24 Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Key.obj differ diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Led.obj b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Led.obj new file mode 100644 index 0000000..ea32d6b Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Led.obj differ diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Seg.obj b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Seg.obj new file mode 100644 index 0000000..bbfc88f Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Seg.obj differ diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Uart.obj b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Uart.obj differ diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Ultrasonic.obj b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/Ultrasonic.obj differ diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/ds1302.obj b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/ds1302.obj new file mode 100644 index 0000000..6521de4 Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/ds1302.obj differ diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/iic.obj b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/iic.obj new file mode 100644 index 0000000..88a47fa Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/iic.obj differ diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/main.obj b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/main.obj new file mode 100644 index 0000000..d565518 Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/main.obj differ diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/onewire.obj b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/onewire.obj new file mode 100644 index 0000000..9749e3f Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/onewire.obj differ diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan new file mode 100644 index 0000000..3bfc9d8 Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan differ diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan.build_log.htm b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..cefcaf1 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan.build_log.htm @@ -0,0 +1,42 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=47QMA-1TSA9-WQL0S-LVEA1-9CML2-F5JLC + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: STCMON51.DLL V1, 0, 10, 0 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\test8_δ֤\User\zuolan.uvproj +Project File Date: 04/01/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling ds1302.c... +compiling onewire.c... +linking... +Program Size: data=90.4 xdata=0 code=2767 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan.hex b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan.hex new file mode 100644 index 0000000..a956e69 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan.hex @@ -0,0 +1,207 @@ +:1007AB00084F000000000000000008310A0A0A0A86 +:1007BB000A0A0A0A082900000000000000000325AD +:0807CB00235950034400000013 +:1007F300AE48AF497C017DF4120222ED4C7019FB27 +:100803007A007925120959E525B5440CE526B54545 +:1008130007E527B54602D202AE48AF497C017DF415 +:10082300120222ED4C70081208AE1201528F4A22B6 +:1002B100AE48AF497C007D0A120222ED4C60030278 +:1002C10004E8120A788F21E5246521FF5521F522E2 +:1002D100E521F45FF523852124E54714700302032A +:1002E100731470030204231470030204D7240360FF +:1002F100030204DFAF227E00EF64077031F557C3BC +:10030100E557940374809480501F74252557F8E6AF +:10031100FDC4540F75F00AA4FCED540F2CFD743E7E +:100321002557F8A605055780D67547018035EF6436 +:10033100064E702FF557C3E557940374809480508F +:100341001F74442557F8E6FFC4540F75F00AA4FE44 +:10035100EF540F2EFF744C2557F8A607055780D68A +:10036100754702E524640460030204DF7547030254 +:1003710004DFE52264077002053DC3E53D94037483 +:10038100809480403EE4F547F53DF557C3E5579429 +:1003910003748094805023743E2557F8E6FF75F06E +:1003A1000A84C454F0FEEF75F00A84E5F04EFF7440 +:1003B100252557F8A607055780D27B007A007925B5 +:1003C100120833AF227E00EF64057039E53D7019E4 +:1003D100743E253DF8E6FDC3941874809480400472 +:1003E1007D18801CED04FD8017743E253DF8E6FD67 +:1003F100C3943C7480948040047D3C8003ED04FDF3 +:10040100743E0204B2EF64044E60030204DF743EE2 +:10041100253DF8E6FF7003FF8003EF14FF743E02F1 +:1004210004D0E52264067002054BC3E54B940374C6 +:100431008094804035E4F547F54BF557C3E5579473 +:1004410003748094805023744C2557F8E6FF75F0AF +:100451000A84C454F0FEEF75F00A84E5F04EFF748F +:10046100442557F8A607055780D2AF227E00EF64D6 +:10047100057045E54B701D744C254BF8E6FDC394A2 +:10048100187480948040047D188003ED04FD744C41 +:10049100254B801F744C253DF8E6C3943C74809431 +:1004A1008040047D3C8008744C254BF8E604FD74C3 +:1004B1004C253DF8A6058026EF64044E7020744C4F +:1004C100254BF8E6FF7003FF8003EF14FF744C2502 +:1004D1003DF8A6078008E52364047002F547300261 +:0704E10006E5226002C202E1 +:0104E80022F1 +:1004E900AE48AF497C007D14120222ED4C60030234 +:1004F9000644E5471460411470030205AD14700306 +:1005090002062124036003020644E525C4540FF5BD +:1005190031E525540FF53275330BE526C4540FF533 +:1005290034E526540FF53575360BE527C4540FF518 +:1005390037E527540FF53822E53E75F00A84F53181 +:10054900E53E75F00A8485F03275330BE53F75F0A9 +:100559000A84F534E53F75F00A8485F03575360B64 +:10056900E54075F00A84F537E54075F00A8485F0B1 +:10057900383001047F0A800BE53D75F003A424316E +:10058900F8E6FFE53D75F003A42431F8A60730012C +:10059900047F0A800BE53D75F003A42432F8E6FFD9 +:1005A900E53D806AE54C75F00A84F531E54C75F056 +:1005B9000A8485F03275330BE54D75F00A84F534FC +:1005C900E54D75F00A8485F03575360BE54E75F005 +:1005D9000A84F537E54E75F00A8485F03830010450 +:1005E9007F0A800BE54B75F003A42431F8E6FFE59B +:1005F9004B75F003A42431F8A6073001047F0A8063 +:100609000BE54B75F003A42432F8E6FFE54B75F0D2 +:1006190003A42432F8A607227E007F057D0A7B0009 +:100629007A007931120285E54A75F00A84F536E5D2 +:0C0639004A75F00A8485F03775380C22F1 +:07000300A200E433F54F22D7 +:100A9100538E7F5389F0758A18758CFCC28DD28C68 +:050AA100D2A9D2AF2232 +:03000B00020645A5 +:10064500C0E0C0F0C083C082C0D075D000C000C07B +:1006550001C002C003C004C005C006C0070549E5C6 +:100665004970020548FFAE48BE0309BFE806754854 +:10067500007549000541E54164087002F541AF4741 +:10068500EF64016005EF6402701E053BE53B7002F7 +:10069500053AFFAE3ABE0318BFE815753A00753B3B +:1006A50000A201B392018008753A00753B00C201B2 +:1006B5003002220528E52864C87005A200B392001F +:1006C5000543E54370020542FFAE42BE1312BF88E3 +:1006D5000FC202800BC200754200754300752800E9 +:1006E50074312541F8E6FD74292541F8E6FBAF4153 +:1006F500120923744F2541F8E6FDAF411208E9D0F0 +:1007050007D006D005D004D003D002D001D000D048 +:0A071500D0D082D083D0F0D0E032C3 +:0E0ABA0000007F237E337DB6DDFEDEFCDFFA1A +:010AC800220B +:1009FE00120A3F120A917B007A00792512083312EF +:100A0E0008AE120ABA1207F31202B11204E912006A +:030A1E000380F260 +:0607D300011D00011EFFE4 +:1008E900ED600FA8077401088002C333D8FC421DCC +:1008F900800EA8077401088002C333D8FCF4521D86 +:10090900E51D651E6013E51DF4F580E5A0541F443F +:0909190080F5A053A01F851D1EEE +:0109220022B2 +:1007D9000D08C0F9A4B0999282F88090FFBFC608AD +:0907E900150102040810204080F3 +:100923007580FFE5A0541F44E0F5A074152FF8E689 +:10093300F580E5A0541F44C0F5A053A01F74082DF3 +:10094300F8E6F580EB600353807FE5A0541F44E095 +:06095300F5A053A01F22D5 +:100A7800E4FFC2C420B3027F0420B2027F0520B184 +:080A8800027F0620B0027F0787 +:010A90002243 +:100A3F007580FFE5A0541F4480F5A053A01FE4F577 +:0D0A4F0080E5A0541F44A0F5A053A01F2275 +:100A5C00E4FEEEC3940874809480500FC297EF1399 +:0B0A6C0092A3EFC313FFD2970E80E7A8 +:010A7700225C +:100AA600C29300C29700D29300120A5CAF05120AE5 +:040AB6005CC2932269 +:10087100E4FDC29300C29700D29300120A5CE4FF28 +:10088100EFC39408748094805011C297EDC313FD97 +:1008910030A303430580D2970F80E5C29300C2972E +:0C08A10000D29700C2A300D2A300AF0554 +:0108AD002228 +:060833008B588A59895A16 +:10083900E4FD7F8E120AA6E4FCECC3940374809451 +:1008490080501EEC25E0FFC374849FFFAB58AA5962 +:10085900A95A8C827583001201D3FD120AA60C8055 +:08086900D87D807F8E020AA6F3 +:060959008B578A588959F2 +:10095F00E4FCECC3940374809480501EEC25E0FFFC +:10096F00C374859FFF120871AB57AA58A9598C827F +:0A097F00758300EF1202000C80D80F +:01098900224B +:060AC90000007F09DFFEC2 +:010ACF002204 +:040A21007F057E00CF +:100A2500EF1FAA0670011E4A600FE4FDEDC3940C8A +:090A35007480948050EA0D80F3F6 +:010A3E002295 +:02098A00A907BB +:10098C00E4FBEBC39408748094805012C294E91376 +:10099C009294120A21D294E9C313F90B80E47F05D7 +:0509AC007E00020A2597 +:1009D800E4FBEBC39408748094805017C294ECC372 +:1009E80013FCD294120AC9309403430480120A21DA +:0509F8000B80DFAF04DD +:0109FD0022D7 +:1009B100C203D2947F0C7E00120A25C2947F507E1E +:1009C10000120A25D2947F0A7E00120A25A294926F +:0609D10003120A21A2033B +:0109D70022FD +:1008AE001209B17FCC12098A7F4412098A7FC87E51 +:1008BE0000120A251209B17FCC12098A7FBE1209D5 +:1008CE008A1209D8A9071209D8EFAD01FCEC120162 +:0B08DE0019E4FBFA7980783D02000E5F +:10000E00EC4D6011E8497017ED33EC3304600DE4EC +:10001E00FCFFFEFD22E933E8330470F80201BE1244 +:10002E00018958046009E4CC248150062850090245 +:10003E0001C82840030201C5C0E0EB4A7044B980F4 +:10004E0006D0E0FB0201B4EF4E701CBD8008EBFF42 +:10005E00EAFEE9FD80EBE98DF0A4FEE5F00200F783 +:10006E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89CD +:10007E00F0A42EFFE435F0CD89F0A42DFEE435F08A +:10008E008067EF4E7005BD80D780C3EF8BF0A4ACB8 +:10009E00F0EE8BF0A42CFCE435F0F8EF8AF0A42CF3 +:1000AE00E5F038FCE433CB8DF0A42CFCE5F03BF806 +:1000BE00EE8AF0A42CFCE5F038F8E433CF89F0A4F6 +:1000CE002CFCE5F038CF3400CE89F0A42FFFE5F0FC +:1000DE003EFEE433C98DF0A42EFEE5F039CD8AF054 +:1000EE00A42FFFE5F03EFEE43DFD33D0E0FB5007CC +:1000FE000BBB000F0201C8EC2CFCEF33FFEE33FEFE +:06010E00ED33FD0201A02B +:1001140075F020800E75F010800575F0087D007E66 +:10012400007F003392D530D503120277EC334010B0 +:10013400EF33FFEE33FEED33FDEC33FCD5F0ED226F +:0E014400E5F0247EA2D513CC92E7CDCEFF22AB +:10015200EDD2E7CD33EC3392D524814006E4FFFEA5 +:10016200FDFC22FCE4CFCECDCC24E0501174FF8004 +:10017200EDC3CC13CCCD13CDCE13CECF13CF0470A1 +:07018200F030D5DE02027728 +:10018900E9D2E7C933E833F892D5EDD2E7CD33ECBC +:0701990033FC5002B2D52235 +:1001A000EC30E7100FBF000C0EBE00080DBD0004C0 +:1001B0000BEB6014A2D5EB13FCED92E7FD2274FF6C +:1001C000FCFDFEFF22E480F8A2D574FF13FC7D80C5 +:0301D000E480EFD9 +:0300000002071FD5 +:0C071F00787FE4F6D8FD75815A02076669 +:1001D300BB010CE58229F582E5833AF583E02250E1 +:1001E30006E92582F8E622BBFE06E92582F8E2222B +:0D01F300E58229F582E5833AF583E4932245 +:10020000F8BB010DE58229F582E5833AF583E8F034 +:10021000225006E92582C8F622BBFE05E92582C8E0 +:02022000F222C8 +:10022200BC000BBE0029EF8DF084FFADF022E4CCC0 +:10023200F875F008EF2FFFEE33FEEC33FCEE9DEC89 +:10024200984005FCEE9DFE0FD5F0E9E4CEFD22EDCF +:10025200F8F5F0EE8420D21CFEADF075F008EF2F19 +:10026200FFED33FD4007985006D5F0F222C398FD0A +:050272000FD5F0EA22A7 +:0E027700C3E49FFFE49EFEE49DFDE49CFC2298 +:10028500EF4E6012EF60010EEDBB010B89828A8390 +:10029500F0A3DFFCDEFA2289F05007F709DFFCA99D +:0C02A500F022BBFEFCF309DFFCA9F022F4 +:10072B000209FEE493A3F8E493A34003F68001F2DD +:10073B0008DFF48029E493A3F85407240CC8C333CF +:10074B00C4540F4420C8834004F456800146F6DF9E +:10075B00E4800B01020408102040809007ABE47E7C +:10076B00019360BCA3FF543F30E509541FFEE49393 +:10077B00A360010ECF54C025E060A840B8E493A35A +:10078B00FAE493A3F8E493A3C8C582C8CAC583CA85 +:10079B00F0A3C8C582C8CAC583CADFE9DEE780BE3D +:0107F2000006 +:00000001FF diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan.lnp b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan.lnp new file mode 100644 index 0000000..d37067a --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/Objects/zuolan.lnp @@ -0,0 +1,9 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\ds1302.obj", +".\Objects\onewire.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/main.c b/题目/真题/8 第八届省赛_左岚/test8/User/main.c new file mode 100644 index 0000000..34a814b --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/main.c @@ -0,0 +1,305 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {10, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ʱ䷽ */ +uchar ucRtc[3] = {0x23, 0x59, 0x50}; // ʼʱʱ23:59:50 +uchar alarmRtc[3] = {0x00, 0x00, 0x00}; // ʼʱ00:00:00 +uchar setUcRtc[3]; // ʱ ʮ +uchar setAlarmRtc[3]; // ʮ +uchar setUcRtc_index; +uchar setAlarmRtc_index; +/* ̷ */ +uchar Key_Slow_Down; + +/* ʱ䷽ */ +uint time_all_1s; +uint time_blink_1s; // 1s˸ +uchar time_200ms; +uint time_5s; +/* ݷ */ +uchar T_value; // ¶ֵ +/* ʾ */ +uchar Seg_show_mode; // 0 ʱʾ 1 ʱ 2 3 ¶ʾ +/* ж */ +bit Seg_blink_flag; // ˸־ +bit Led_blink_flag; // LED˸־ +bit ring_flag; // Ӵ־ +/* ݴ */ +void Data_Proc() +{ + if (time_all_1s % 500 == 0) + { + // ʱȡ + Read_Rtc(ucRtc); + if (ucRtc[0] == alarmRtc[0] && ucRtc[1] == alarmRtc[1] && ucRtc[2] == alarmRtc[2]) + // Ӵ + ring_flag = 1; + } + if (time_all_1s % 500 == 0) + { + // ¶ȶȡ + T_value = rd_temperature(); + } +} +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + uchar i; + if (time_all_1s % 10) + return; + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + switch (Seg_show_mode) + { + case 0: + if (Key_Down == 7) + { + // ʱ + for (i = 0; i < 3; i++) + { + setUcRtc[i] = ucRtc[i] / 16 * 10 + ucRtc[i] % 16; + } + Seg_show_mode = 1; + } + else if (Key_Down == 6) + { + // + for (i = 0; i < 3; i++) + { + setAlarmRtc[i] = alarmRtc[i] / 16 * 10 + alarmRtc[i] % 16; + } + Seg_show_mode = 2; + } + if (Key_Old == 4) + // ¶ʾ + Seg_show_mode = 3; + break; + + case 1: + if (Key_Down == 7) + setUcRtc_index++; + if (setUcRtc_index >= 3) + { + // ʱʾ + Seg_show_mode = 0; + setUcRtc_index = 0; + for (i = 0; i < 3; i++) + ucRtc[i] = setUcRtc[i] / 10 << 4 | setUcRtc[i] % 10; + Set_Rtc(ucRtc); + } + if (Key_Down == 5) + { + if (setUcRtc_index == 0) + // ޸Сʱ + setUcRtc[setUcRtc_index] = (setUcRtc[setUcRtc_index] >= 24) ? 24 + : setUcRtc[setUcRtc_index] + 1; + else + // ޸ķ + setUcRtc[setUcRtc_index] = (setUcRtc[setUcRtc_index] >= 60) ? 60 + : setUcRtc[setUcRtc_index] + 1; + } + else if (Key_Down == 4) + // ޸ʱ + setUcRtc[setUcRtc_index] = (setUcRtc[setUcRtc_index] == 0) ? 0 + : setUcRtc[setUcRtc_index] - 1; + break; + case 2: + if (Key_Down == 6) + setAlarmRtc_index++; + if (setAlarmRtc_index >= 3) + { + // ʱʾ + Seg_show_mode = 0; + setAlarmRtc_index = 0; + for (i = 0; i < 3; i++) + alarmRtc[i] = setAlarmRtc[i] / 10 << 4 | setAlarmRtc[i] % 10; + } + if (Key_Down == 5) + { + if (setAlarmRtc_index == 0) + // ޸Сʱ + setAlarmRtc[setAlarmRtc_index] = (setAlarmRtc[setAlarmRtc_index] >= 24) ? 24 + : setAlarmRtc[setAlarmRtc_index] + 1; + else + // ޸ķ + setAlarmRtc[setUcRtc_index] = (setAlarmRtc[setUcRtc_index] >= 60) ? 60 + : setAlarmRtc[setAlarmRtc_index] + 1; + } + else if (Key_Down == 4) + // ޸ʱ + setAlarmRtc[setUcRtc_index] = (setAlarmRtc[setAlarmRtc_index] == 0) ? 0 + : setAlarmRtc[setAlarmRtc_index] - 1; + break; + case 3: + if (Key_Up == 4) + // ʱʾ + Seg_show_mode = 0; + break; + } + if (ring_flag && (Key_Down != 0)) + ring_flag = 0; +} +/* ܴ */ +void Seg_Proc() +{ + if (time_all_1s % 20) + return; + switch (Seg_show_mode) + { + case 0: + /* ʱʾ */ + Seg_Buf[0] = ucRtc[0] / 16; + Seg_Buf[1] = ucRtc[0] % 16; + Seg_Buf[2] = 11; //- + Seg_Buf[3] = ucRtc[1] / 16; + Seg_Buf[4] = ucRtc[1] % 16; + Seg_Buf[5] = 11; //- + Seg_Buf[6] = ucRtc[2] / 16; + Seg_Buf[7] = ucRtc[2] % 16; + break; + + case 1: + /* ʱ */ + Seg_Buf[0] = setUcRtc[0] / 10; + Seg_Buf[1] = setUcRtc[0] % 10; + Seg_Buf[2] = 11; //- + Seg_Buf[3] = setUcRtc[1] / 10; + Seg_Buf[4] = setUcRtc[1] % 10; + Seg_Buf[5] = 11; //- + Seg_Buf[6] = setUcRtc[2] / 10; + Seg_Buf[7] = setUcRtc[2] % 10; + Seg_Buf[setUcRtc_index * 3] = Seg_blink_flag ? 10 + : Seg_Buf[setUcRtc_index * 3]; + Seg_Buf[setUcRtc_index * 3 + 1] = Seg_blink_flag ? 10 + : Seg_Buf[setUcRtc_index * 3 + 1]; + break; + case 2: + /* */ + Seg_Buf[0] = setAlarmRtc[0] / 10; + Seg_Buf[1] = setAlarmRtc[0] % 10; + Seg_Buf[2] = 11; //- + Seg_Buf[3] = setAlarmRtc[1] / 10; + Seg_Buf[4] = setAlarmRtc[1] % 10; + Seg_Buf[5] = 11; //- + Seg_Buf[6] = setAlarmRtc[2] / 10; + Seg_Buf[7] = setAlarmRtc[2] % 10; + Seg_Buf[setAlarmRtc_index * 3] = Seg_blink_flag ? 10 + : Seg_Buf[setAlarmRtc_index * 3]; + Seg_Buf[setAlarmRtc_index * 3 + 1] = Seg_blink_flag ? 10 + : Seg_Buf[setAlarmRtc_index * 3 + 1]; + break; + break; + case 3: + /* ¶ʾ */ + memset(Seg_Buf, 10, 5); + Seg_Buf[5] = T_value / 10; + Seg_Buf[6] = T_value % 10; + Seg_Buf[7] = 12; // C + break; + } +} + +/* LED */ +void Led_Proc() +{ + ucLed[0] = Led_blink_flag; +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++time_all_1s == 1000) + time_all_1s = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (Seg_show_mode == 1 || Seg_show_mode == 2) + { + // ýʱǿʼмʱ + if (++time_blink_1s == 1000) + { + // 1s˸ + time_blink_1s = 0; + Seg_blink_flag ^= 1; + } + } + else + { + // ýʱDzмʱ + time_blink_1s = 0; + Seg_blink_flag = 0; + } + if (ring_flag) + { + // Ӵʱǿʼʱ + if (++time_200ms == 200) + Led_blink_flag ^= 1; + if (++time_5s == 5000) + ring_flag = 0; + } + else + { + // ֹΪ°ڶμʱbug + Led_blink_flag = 0; + time_5s = 0; + time_200ms = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void Delay750ms(void) //@12.000MHz +{ + unsigned char data i, j, k; + + _nop_(); + _nop_(); + i = 35; + j = 51; + k = 182; + do + { + do + { + while (--k) + ; + } while (--j); + } while (--i); +} +void main() +{ + System_Init(); + Timer0_Init(); + Set_Rtc(ucRtc); + rd_temperature(); + Delay750ms(); + while (1) + { + Data_Proc(); + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/main.h b/题目/真题/8 第八届省赛_左岚/test8/User/main.h new file mode 100644 index 0000000..9192bd4 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/main.h @@ -0,0 +1,12 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "ds1302.h" +#include "onewire.h" +#include "intrins.h" +#include "Init.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/zuolan.uvgui.haze b/题目/真题/8 第八届省赛_左岚/test8/User/zuolan.uvgui.haze new file mode 100644 index 0000000..40efad9 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/zuolan.uvgui.haze @@ -0,0 +1,2610 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 610 512 + + + 204 + Performance Analyzer + 1122 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 2 + 3 + + -32000 + -32024 + + + -1 + -1 + + + 251 + 391 + 1543 + 739 + + + + 0 + + 311 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000C5D4F200FFFFFFFF2E433A5C55736572735C68617A655C4465736B746F705C74657374385FCEB4D1E9D6A45C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100007E000000000600002D020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + 940100007E00000070040000EB000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000001602000000060000E5020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E5010000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000019020000FD050000CC020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000940100007E00000070040000EB000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000E00200007E00000070040000CF010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000FE010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E000000900100002D020000000000004F00000090010000FE0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000000000000BF01000070040000400200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000FE010000000600000202000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000310200000006000014030000000000000202000000060000E50200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2002 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000000060000C9000000 + + + 16 + 940100007E00000000060000F8000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E1010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E1010000 + + + 16 + 30FAFFFFCE0000001CFBFFFFB7020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD050000B0000000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 1936 + 1936 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E1010000 + + + 16 + 30FAFFFFCE0000001CFBFFFFB7020000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E1010000 + + + 16 + 30FAFFFFCE0000001CFBFFFFB7020000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000ED0100009D04000037020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000FE01000000030000E5020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000ED0100009D04000037020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 940100006300000000060000C9000000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD050000B0000000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD050000B0000000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD050000B0000000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 9701000066000000FD050000B0000000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 13030000660000009D040000B9010000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000E1010000 + + + 16 + 30FAFFFFCE0000001CFBFFFFB7020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000ED0100009D04000037020000 + + + 16 + 30FAFFFFCE00000080FCFFFF48010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000ED0100009D04000037020000 + + + 16 + 30FAFFFFCE0000001CFBFFFFB7020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0703000015020000FD050000CC020000 + + + 16 + 30FAFFFFCE000000C0FBFFFF5E020000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000E502000000060000F8020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 000000001C0000006F02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2618 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF94010000C900000000060000CD000000010000000100001004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000940100007E00000000060000F8000000940100004F00000000060000C90000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F00000010030000D2010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000100300007E000000A004000001020000100300004F000000A0040000D20100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000FA010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000007E0000009001000029020000000000004F00000090010000FA0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000FA01000000060000FE010000010000000100001004000000010000007FFEFFFF2900000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000001000000040300002D020000000600001403000004030000FE01000000060000E502000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFF00030000FE01000004030000E502000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000D2010000A0040000D6010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B401000077940000018000800000000000000000000005020000A00400007F02000000000000D6010000A0040000500200000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2002 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000004002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 1 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 32 + 1 + 8 + 1 + + 0 + + + + +
diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/zuolan.uvopt b/题目/真题/8 第八届省赛_左岚/test8/User/zuolan.uvopt new file mode 100644 index 0000000..4f7f580 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/zuolan.uvopt @@ -0,0 +1,287 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + + + + + + + + + + + BIN\STCMON51.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 + STCMON51 + -S4 -B115200 -O0 -U0 + + + + + + 0 + 1 + ring_flag + + + 1 + 1 + ucLed,0x0A + + + 2 + 1 + ucRtc,0x10 + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\ds1302.c + ds1302.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + 0 + ..\Driver\onewire.c + onewire.c + 0 + 0 + + + +
diff --git a/题目/真题/8 第八届省赛_左岚/test8/User/zuolan.uvproj b/题目/真题/8 第八届省赛_左岚/test8/User/zuolan.uvproj new file mode 100644 index 0000000..a5fe0f2 --- /dev/null +++ b/题目/真题/8 第八届省赛_左岚/test8/User/zuolan.uvproj @@ -0,0 +1,410 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 10 + + + + + + + + + + + + + + BIN\STCMON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + ds1302.c + 1 + ..\Driver\ds1302.c + + + onewire.c + 1 + ..\Driver\onewire.c + + + + + + + +
diff --git a/题目/真题/8 第八届省赛_左岚/第8届省赛-基于单片机的电子钟程序设计与调试.pdf b/题目/真题/8 第八届省赛_左岚/第8届省赛-基于单片机的电子钟程序设计与调试.pdf new file mode 100644 index 0000000..a4f714c Binary files /dev/null and b/题目/真题/8 第八届省赛_左岚/第8届省赛-基于单片机的电子钟程序设计与调试.pdf differ diff --git a/题目/真题/9 第九届省赛_左岚/第9届省赛-彩灯控制器.pdf b/题目/真题/9 第九届省赛_左岚/第9届省赛-彩灯控制器.pdf new file mode 100644 index 0000000..fef3f39 Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第9届省赛-彩灯控制器.pdf differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/.vscode/settings.json b/题目/真题/9 第九届省赛_左岚/第九届省赛/.vscode/settings.json new file mode 100644 index 0000000..a398de6 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "seg.h": "c", + "init.h": "c", + "main.h": "c", + "ds1302.h": "c", + "onewire.h": "c", + "iic.h": "c", + "intrins.h": "c", + "ultrasound.h": "c", + "stdio.h": "c", + "uart.h": "c", + "INTRINS.H": "cpp", + "ultrasonic.h": "c", + "stc15f2k60s2.h": "c", + "STC15F2K60S2.H": "cpp" + } +} \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Init.c b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Init.c new file mode 100644 index 0000000..544c8e0 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Init.c @@ -0,0 +1,12 @@ +#include + +void System_Init() +{ + P0 = 0xff; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + + P0 = 0x00; + P2 = P2 & 0x1f | 0xa0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Init.h b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Init.h new file mode 100644 index 0000000..f86b03e --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Init.h @@ -0,0 +1,3 @@ +#include + +void System_Init(); \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Key.c b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Key.c new file mode 100644 index 0000000..490d088 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Key.c @@ -0,0 +1,57 @@ +#include "Key.h" +unsigned char Key_Read() +{ + unsigned char temp = 0; + ET0 = 0; + P44 = 0; + P42 = 1; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 4; + if (P32 == 0) + temp = 5; + if (P31 == 0) + temp = 6; + if (P30 == 0) + temp = 7; + P44 = 1; + P42 = 0; + P35 = 1; + P34 = 1; + if (P33 == 0) + temp = 8; + if (P32 == 0) + temp = 9; + if (P31 == 0) + temp = 10; + if (P30 == 0) + temp = 11; + P44 = 1; + P42 = 1; + P35 = 0; + P34 = 1; + if (P33 == 0) + temp = 12; + if (P32 == 0) + temp = 13; + if (P31 == 0) + temp = 14; + if (P30 == 0) + temp = 15; + P44 = 1; + P42 = 1; + P35 = 1; + P34 = 0; + if (P33 == 0) + temp = 16; + if (P32 == 0) + temp = 17; + if (P31 == 0) + temp = 18; + if (P30 == 0) + temp = 19; + ET0 = 1; + P3 = 0xff; + return temp; +} \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Key.h b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Key.h new file mode 100644 index 0000000..a70d00f --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Key.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Key_Read(); \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Led.c b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Led.c new file mode 100644 index 0000000..4749a48 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Led.c @@ -0,0 +1,21 @@ +#include "Led.h" +/// @brief Ledʾ +/// @param addr ҪдLedλ0-7 +/// @param enable Ƿ 0 1 +void Led_Disp(unsigned char addr, unsigned char enable) +{ + static unsigned char temp = 0x00; + static unsigned char temp_old = 0xff; + // ָλõ + if (enable) + temp |= 0x01 << addr; + else + temp &= ~(0x01 << addr); + if (temp != temp_old) + { + P0 = ~temp; + P2 = P2 & 0x1f | 0x80; + P2 &= 0x1f; + temp_old = temp; + } +} \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Led.h b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Led.h new file mode 100644 index 0000000..e50c9a7 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Led.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Led_Disp(unsigned char addr, unsigned char enable); \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Seg.c b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Seg.c new file mode 100644 index 0000000..e2d3f60 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Seg.c @@ -0,0 +1,23 @@ +#include "Seg.h" +// ѡ 0 1 2 3 4 5 6 7 8 9 - +unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xbf}; +// λѡ +unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) +{ + // ֶ + P0 = 0xff; + P2 = P2 & 0x1f | 0xe0; + + // ѡʾλ + P0 = seg_wela[wela]; + P2 = P2 & 0x1f | 0xc0; + P2 &= 0x1f; + + // ѡʾ + P0 = seg_dula[dula]; + if (point) + P0 &= 0x7f; + P2 = P2 & 0x1f | 0xe0; + P2 &= 0x1f; +} \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Seg.h b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Seg.h new file mode 100644 index 0000000..c61eaae --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/Seg.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point); \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/iic.c b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/iic.c new file mode 100644 index 0000000..a94c8c4 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/iic.c @@ -0,0 +1,142 @@ +/* # I2C代码片段说明 + 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题 + 中对单片机时钟频率的要求,进行代码调试和修改。 +*/ +#include "iic.h" +#include "intrins.h" +#define DELAY_TIME 5 +sbit scl = P2 ^ 0; +sbit sda = P2 ^ 1; +// +static void I2C_Delay(unsigned char n) +{ + do + { + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + _nop_(); + } while (n--); +} + +// +void I2CStart(void) +{ + sda = 1; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 0; + I2C_Delay(DELAY_TIME); + scl = 0; +} + +// +void I2CStop(void) +{ + sda = 0; + scl = 1; + I2C_Delay(DELAY_TIME); + sda = 1; + I2C_Delay(DELAY_TIME); +} + +// +void I2CSendByte(unsigned char byt) +{ + unsigned char i; + + for (i = 0; i < 8; i++) + { + scl = 0; + I2C_Delay(DELAY_TIME); + if (byt & 0x80) + { + sda = 1; + } + else + { + sda = 0; + } + I2C_Delay(DELAY_TIME); + scl = 1; + byt <<= 1; + I2C_Delay(DELAY_TIME); + } + + scl = 0; +} + +// +unsigned char I2CReceiveByte(void) +{ + unsigned char da; + unsigned char i; + for (i = 0; i < 8; i++) + { + scl = 1; + I2C_Delay(DELAY_TIME); + da <<= 1; + if (sda) + da |= 0x01; + scl = 0; + I2C_Delay(DELAY_TIME); + } + return da; +} + +// +unsigned char I2CWaitAck(void) +{ + unsigned char ackbit; + + scl = 1; + I2C_Delay(DELAY_TIME); + ackbit = sda; + scl = 0; + I2C_Delay(DELAY_TIME); + + return ackbit; +} + +// +void I2CSendAck(unsigned char ackbit) +{ + scl = 0; + sda = ackbit; + I2C_Delay(DELAY_TIME); + scl = 1; + I2C_Delay(DELAY_TIME); + scl = 0; + sda = 1; + I2C_Delay(DELAY_TIME); +} + +unsigned char Ad_Read(unsigned char addr) +{ + unsigned char temp; + // 选择芯片为PCF + I2CStart(); + I2CSendByte(0x90); + I2CWaitAck(); + I2CSendByte(addr); + I2CWaitAck(); + I2CStart(); + I2CSendByte(0x91); + I2CWaitAck(); + temp = I2CReceiveByte(); + I2CSendAck(1); + I2CStop(); + return temp; +} \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/iic.h b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/iic.h new file mode 100644 index 0000000..70d3e1e --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/Driver/iic.h @@ -0,0 +1,2 @@ +#include "STC15F2K60S2.H" +unsigned char Ad_Read(unsigned char addr); \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Init.lst b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Init.lst new file mode 100644 index 0000000..97fc22e --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Init.lst @@ -0,0 +1,36 @@ +C51 COMPILER V9.59.0.0 INIT 03/06/2024 21:56:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE INIT +OBJECT MODULE PLACED IN .\Objects\Init.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Init.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Init.lst) TABS(2) OBJECT(.\Objects\Init.obj) + +line level source + + 1 #include + 2 + 3 void System_Init() + 4 { + 5 1 P0 = 0xff; + 6 1 P2 = P2 & 0x1f | 0x80; + 7 1 P2 &= 0x1f; + 8 1 + 9 1 P0 = 0x00; + 10 1 P2 = P2 & 0x1f | 0xa0; + 11 1 P2 &= 0x1f; + 12 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 29 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Key.lst b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Key.lst new file mode 100644 index 0000000..7c16043 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Key.lst @@ -0,0 +1,83 @@ +C51 COMPILER V9.59.0.0 KEY 03/06/2024 21:56:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE KEY +OBJECT MODULE PLACED IN .\Objects\Key.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Key.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Key.lst) TABS(2) OBJECT(.\Objects\Key.obj) + +line level source + + 1 #include "Key.h" + 2 unsigned char Key_Read() + 3 { + 4 1 unsigned char temp = 0; + 5 1 ET0 = 0; + 6 1 P44 = 0; + 7 1 P42 = 1; + 8 1 P35 = 1; + 9 1 P34 = 1; + 10 1 if (P33 == 0) + 11 1 temp = 4; + 12 1 if (P32 == 0) + 13 1 temp = 5; + 14 1 if (P31 == 0) + 15 1 temp = 6; + 16 1 if (P30 == 0) + 17 1 temp = 7; + 18 1 P44 = 1; + 19 1 P42 = 0; + 20 1 P35 = 1; + 21 1 P34 = 1; + 22 1 if (P33 == 0) + 23 1 temp = 8; + 24 1 if (P32 == 0) + 25 1 temp = 9; + 26 1 if (P31 == 0) + 27 1 temp = 10; + 28 1 if (P30 == 0) + 29 1 temp = 11; + 30 1 P44 = 1; + 31 1 P42 = 1; + 32 1 P35 = 0; + 33 1 P34 = 1; + 34 1 if (P33 == 0) + 35 1 temp = 12; + 36 1 if (P32 == 0) + 37 1 temp = 13; + 38 1 if (P31 == 0) + 39 1 temp = 14; + 40 1 if (P30 == 0) + 41 1 temp = 15; + 42 1 P44 = 1; + 43 1 P42 = 1; + 44 1 P35 = 1; + 45 1 P34 = 0; + 46 1 if (P33 == 0) + 47 1 temp = 16; + 48 1 if (P32 == 0) + 49 1 temp = 17; + 50 1 if (P31 == 0) + 51 1 temp = 18; + 52 1 if (P30 == 0) + 53 1 temp = 19; + 54 1 ET0 = 1; + C51 COMPILER V9.59.0.0 KEY 03/06/2024 21:56:43 PAGE 2 + + 55 1 P3 = 0xff; + 56 1 return temp; + 57 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 122 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Led.lst b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Led.lst new file mode 100644 index 0000000..5ea0632 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Led.lst @@ -0,0 +1,45 @@ +C51 COMPILER V9.59.0.0 LED 03/06/2024 21:56:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE LED +OBJECT MODULE PLACED IN .\Objects\Led.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Led.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Led.lst) TABS(2) OBJECT(.\Objects\Led.obj) + +line level source + + 1 #include "Led.h" + 2 /// @brief Ledʾ + 3 /// @param addr ҪдLedλ0-7 + 4 /// @param enable Ƿ 0 1 + 5 void Led_Disp(unsigned char addr, unsigned char enable) + 6 { + 7 1 static unsigned char temp = 0x00; + 8 1 static unsigned char temp_old = 0xff; + 9 1 // ָλõ + 10 1 if (enable) + 11 1 temp |= 0x01 << addr; + 12 1 else + 13 1 temp &= ~(0x01 << addr); + 14 1 if (temp != temp_old) + 15 1 { + 16 2 P0 = ~temp; + 17 2 P2 = P2 & 0x1f | 0x80; + 18 2 P2 &= 0x1f; + 19 2 temp_old = temp; + 20 2 } + 21 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 58 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 2 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Seg.lst b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Seg.lst new file mode 100644 index 0000000..569f628 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Seg.lst @@ -0,0 +1,47 @@ +C51 COMPILER V9.59.0.0 SEG 03/06/2024 21:56:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE SEG +OBJECT MODULE PLACED IN .\Objects\Seg.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Seg.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\Seg.lst) TABS(2) OBJECT(.\Objects\Seg.obj) + +line level source + + 1 #include "Seg.h" + 2 // ѡ 0 1 2 3 4 5 6 7 8 9 - + 3 unsigned char seg_dula[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0xbf}; + 4 // λѡ + 5 unsigned char seg_wela[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; + 6 void Seg_Disp(unsigned char wela, unsigned char dula, unsigned char point) + 7 { + 8 1 // ֶ + 9 1 P0 = 0xff; + 10 1 P2 = P2 & 0x1f | 0xe0; + 11 1 + 12 1 // ѡʾλ + 13 1 P0 = seg_wela[wela]; + 14 1 P2 = P2 & 0x1f | 0xc0; + 15 1 P2 &= 0x1f; + 16 1 + 17 1 // ѡʾ + 18 1 P0 = seg_dula[dula]; + 19 1 if (point) + 20 1 P0 &= 0x7f; + 21 1 P2 = P2 & 0x1f | 0xe0; + 22 1 P2 &= 0x1f; + 23 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 54 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 20 ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Uart.lst b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Uart.lst new file mode 100644 index 0000000..135e2d6 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Uart.lst @@ -0,0 +1,44 @@ +C51 COMPILER V9.59.0.0 UART 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE UART +OBJECT MODULE PLACED IN .\Objects\Uart.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Uart.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECT + -EXTEND PRINT(.\Listings\Uart.lst) TABS(2) OBJECT(.\Objects\Uart.obj) + +line level source + + 1 #include "Uart.h" + 2 void Uart1_Init(void) // 9600bps@12MHz + 3 { + 4 1 SCON = 0x50; // 8λ,ɱ䲨 + 5 1 AUXR |= 0x01; // 1ѡʱ2Ϊʷ + 6 1 AUXR |= 0x04; // ʱʱ1Tģʽ + 7 1 T2L = 0xC7; // öʱʼֵ + 8 1 T2H = 0xFE; // öʱʼֵ + 9 1 AUXR |= 0x10; // ʱ2ʼʱ + 10 1 ES = 1; // 򿪴ж + 11 1 EA = 1; // ж + 12 1 } + 13 extern char putchar(char ch) + 14 { + 15 1 SBUF = ch; // chдSBUF + 16 1 while (TI == 0) + 17 1 ; // ȴ + 18 1 TI = 0; // ɱ־ + 19 1 return ch; + 20 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 31 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Ultrasonic.lst b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Ultrasonic.lst new file mode 100644 index 0000000..ac5c744 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/Ultrasonic.lst @@ -0,0 +1,81 @@ +C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ULTRASONIC +OBJECT MODULE PLACED IN .\Objects\Ultrasonic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\Ultrasonic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG + -OBJECTEXTEND PRINT(.\Listings\Ultrasonic.lst) TABS(2) OBJECT(.\Objects\Ultrasonic.obj) + +line level source + + 1 #include "Ultrasonic.h" + 2 #include "intrins.h" + 3 + 4 sbit Tx = P1 ^ 0; + 5 sbit Rx = P1 ^ 1; + 6 void Delay12us(void) //@12.000MHz + 7 { + 8 1 unsigned char data i; + 9 1 + 10 1 _nop_(); + 11 1 _nop_(); + 12 1 i = 33; + 13 1 while (--i) + 14 1 ; + 15 1 } + 16 + 17 void Ut_Wave_Init() + 18 { + 19 1 unsigned char i; + 20 1 // 840kHzķ + 21 1 // f=40kHz->T=1/f=0.000025s=25us + 22 1 // 12.5us 1 12.5us 0 + 23 1 for (i = 0; i < 8; i++) + 24 1 { + 25 2 Tx = 1; + 26 2 Delay12us(); + 27 2 Tx = 0; + 28 2 Delay12us(); + 29 2 } + 30 1 } + 31 + 32 unsigned char Ut_Wave_Data() + 33 { + 34 1 unsigned int time; + 35 1 TMOD &= 0x0f; + 36 1 TH1 = TL1 = 0; + 37 1 Ut_Wave_Init(); + 38 1 TR1 = 1; + 39 1 while ((Rx == 1) && (TF1 == 0)) + 40 1 ; // ݶȡδû + 41 1 TR1 = 0; + 42 1 // ûݶȡ + 43 1 if (TF1 == 0) + 44 1 { + 45 2 time = TH1 << 8 | TL1; // λΪ + 46 2 // L=V*T/2 + 47 2 return (time * 0.017); // صĵλcm + 48 2 } + 49 1 // ϶˴βЧ + 50 1 else + 51 1 { + 52 2 TF1 = 0; + 53 2 return 0; + 54 2 } + C51 COMPILER V9.59.0.0 ULTRASONIC 02/24/2024 21:37:53 PAGE 2 + + 55 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 90 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/ds1302.lst b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/ds1302.lst new file mode 100644 index 0000000..0f77e00 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/ds1302.lst @@ -0,0 +1,110 @@ +C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE DS1302 +OBJECT MODULE PLACED IN .\Objects\ds1302.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\ds1302.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJE + -CTEXTEND PRINT(.\Listings\ds1302.lst) TABS(2) OBJECT(.\Objects\ds1302.obj) + +line level source + + 1 /* # DS1302代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "ds1302.h" + 7 #include "REG52.H" + 8 #include "intrins.h" + 9 sbit SCK = P1 ^ 7; + 10 sbit SDA = P2 ^ 3; + 11 sbit RST = P1 ^ 3; + 12 // + 13 void Write_Ds1302(unsigned char temp) + 14 { + 15 1 unsigned char i; + 16 1 for (i = 0; i < 8; i++) + 17 1 { + 18 2 SCK = 0; + 19 2 SDA = temp & 0x01; + 20 2 temp >>= 1; + 21 2 SCK = 1; + 22 2 } + 23 1 } + 24 + 25 // + 26 void Write_Ds1302_Byte(unsigned char address, unsigned char dat) + 27 { + 28 1 RST = 0; + 29 1 _nop_(); + 30 1 SCK = 0; + 31 1 _nop_(); + 32 1 RST = 1; + 33 1 _nop_(); + 34 1 Write_Ds1302(address); + 35 1 Write_Ds1302(dat); + 36 1 RST = 0; + 37 1 } + 38 + 39 // + 40 unsigned char Read_Ds1302_Byte(unsigned char address) + 41 { + 42 1 unsigned char i, temp = 0x00; + 43 1 RST = 0; + 44 1 _nop_(); + 45 1 SCK = 0; + 46 1 _nop_(); + 47 1 RST = 1; + 48 1 _nop_(); + 49 1 Write_Ds1302(address); + 50 1 for (i = 0; i < 8; i++) + 51 1 { + 52 2 SCK = 0; + 53 2 temp >>= 1; + C51 COMPILER V9.59.0.0 DS1302 02/24/2024 21:37:53 PAGE 2 + + 54 2 if (SDA) + 55 2 temp |= 0x80; + 56 2 SCK = 1; + 57 2 } + 58 1 RST = 0; + 59 1 _nop_(); + 60 1 SCK = 0; + 61 1 _nop_(); + 62 1 SCK = 1; + 63 1 _nop_(); + 64 1 SDA = 0; + 65 1 _nop_(); + 66 1 SDA = 1; + 67 1 _nop_(); + 68 1 return (temp); + 69 1 } + 70 void Set_Rtc(unsigned char *ucRtc) + 71 { + 72 1 unsigned char i; + 73 1 Write_Ds1302_Byte(0x8e, 0x00); // 关闭写保护 + 74 1 for (i = 0; i < 3; i++) + 75 1 Write_Ds1302_Byte(0x84 - 2 * i, ucRtc[i]); + 76 1 Write_Ds1302_Byte(0x8e, 0x80); // 打开写保护 + 77 1 } + 78 void Read_Rtc(unsigned char *ucRtc) + 79 { + 80 1 unsigned char i; + 81 1 for (i = 0; i < 3; i++) + 82 1 ucRtc[i] = Read_Ds1302_Byte(0x85 - 2 * i); + 83 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 220 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 6 + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/iic.lst b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/iic.lst new file mode 100644 index 0000000..d5ef2cc --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/iic.lst @@ -0,0 +1,171 @@ +C51 COMPILER V9.59.0.0 IIC 03/06/2024 21:56:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE IIC +OBJECT MODULE PLACED IN .\Objects\iic.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\iic.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTE + -XTEND PRINT(.\Listings\iic.lst) TABS(2) OBJECT(.\Objects\iic.obj) + +line level source + + 1 /* # I2C代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型 + -运行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "iic.h" + 7 #include "intrins.h" + 8 #define DELAY_TIME 5 + 9 sbit scl = P2 ^ 0; + 10 sbit sda = P2 ^ 1; + 11 // + 12 static void I2C_Delay(unsigned char n) + 13 { + 14 1 do + 15 1 { + 16 2 _nop_(); + 17 2 _nop_(); + 18 2 _nop_(); + 19 2 _nop_(); + 20 2 _nop_(); + 21 2 _nop_(); + 22 2 _nop_(); + 23 2 _nop_(); + 24 2 _nop_(); + 25 2 _nop_(); + 26 2 _nop_(); + 27 2 _nop_(); + 28 2 _nop_(); + 29 2 _nop_(); + 30 2 _nop_(); + 31 2 } while (n--); + 32 1 } + 33 + 34 // + 35 void I2CStart(void) + 36 { + 37 1 sda = 1; + 38 1 scl = 1; + 39 1 I2C_Delay(DELAY_TIME); + 40 1 sda = 0; + 41 1 I2C_Delay(DELAY_TIME); + 42 1 scl = 0; + 43 1 } + 44 + 45 // + 46 void I2CStop(void) + 47 { + 48 1 sda = 0; + 49 1 scl = 1; + 50 1 I2C_Delay(DELAY_TIME); + 51 1 sda = 1; + 52 1 I2C_Delay(DELAY_TIME); + 53 1 } + C51 COMPILER V9.59.0.0 IIC 03/06/2024 21:56:43 PAGE 2 + + 54 + 55 // + 56 void I2CSendByte(unsigned char byt) + 57 { + 58 1 unsigned char i; + 59 1 + 60 1 for (i = 0; i < 8; i++) + 61 1 { + 62 2 scl = 0; + 63 2 I2C_Delay(DELAY_TIME); + 64 2 if (byt & 0x80) + 65 2 { + 66 3 sda = 1; + 67 3 } + 68 2 else + 69 2 { + 70 3 sda = 0; + 71 3 } + 72 2 I2C_Delay(DELAY_TIME); + 73 2 scl = 1; + 74 2 byt <<= 1; + 75 2 I2C_Delay(DELAY_TIME); + 76 2 } + 77 1 + 78 1 scl = 0; + 79 1 } + 80 + 81 // + 82 unsigned char I2CReceiveByte(void) + 83 { + 84 1 unsigned char da; + 85 1 unsigned char i; + 86 1 for (i = 0; i < 8; i++) + 87 1 { + 88 2 scl = 1; + 89 2 I2C_Delay(DELAY_TIME); + 90 2 da <<= 1; + 91 2 if (sda) + 92 2 da |= 0x01; + 93 2 scl = 0; + 94 2 I2C_Delay(DELAY_TIME); + 95 2 } + 96 1 return da; + 97 1 } + 98 + 99 // + 100 unsigned char I2CWaitAck(void) + 101 { + 102 1 unsigned char ackbit; + 103 1 + 104 1 scl = 1; + 105 1 I2C_Delay(DELAY_TIME); + 106 1 ackbit = sda; + 107 1 scl = 0; + 108 1 I2C_Delay(DELAY_TIME); + 109 1 + 110 1 return ackbit; + 111 1 } + 112 + 113 // + 114 void I2CSendAck(unsigned char ackbit) + 115 { + C51 COMPILER V9.59.0.0 IIC 03/06/2024 21:56:43 PAGE 3 + + 116 1 scl = 0; + 117 1 sda = ackbit; + 118 1 I2C_Delay(DELAY_TIME); + 119 1 scl = 1; + 120 1 I2C_Delay(DELAY_TIME); + 121 1 scl = 0; + 122 1 sda = 1; + 123 1 I2C_Delay(DELAY_TIME); + 124 1 } + 125 + 126 unsigned char Ad_Read(unsigned char addr) + 127 { + 128 1 unsigned char temp; + 129 1 // 选择芯片为PCF + 130 1 I2CStart(); + 131 1 I2CSendByte(0x90); + 132 1 I2CWaitAck(); + 133 1 I2CSendByte(addr); + 134 1 I2CWaitAck(); + 135 1 I2CStart(); + 136 1 I2CSendByte(0x91); + 137 1 I2CWaitAck(); + 138 1 temp = I2CReceiveByte(); + 139 1 I2CSendAck(1); + 140 1 I2CStop(); + 141 1 return temp; + 142 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 231 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/main.lst b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/main.lst new file mode 100644 index 0000000..7b910c7 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/main.lst @@ -0,0 +1,261 @@ +C51 COMPILER V9.59.0.0 MAIN 03/06/2024 21:56:43 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN +OBJECT MODULE PLACED IN .\Objects\main.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJECTEXTEND PRI + -NT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj) + +line level source + + 1 #include "main.h" + 2 /* LEDʾ */ + 3 uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + 4 + 5 /* ʾ */ + 6 uchar Seg_Slow_Down; // ܼ + 7 uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ + 8 uchar Seg_Pos; // ָʾ + 9 uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + 10 + 11 /* ̷ */ + 12 uchar Key_Slow_Down; + 13 + 14 /* */ + 15 + 16 /* ʾ */ + 17 uchar Led_show_mode; // 0 ҵѭ 1 ҵѭ 2 .. 3 .. + 18 uint Flow_interval = 400; // 400-1200 + 19 uchar Seg_show_mode; // 0 ȫ 1 ģʽ 2 ת + 20 uchar Led_level; // 0 1 2 3 + 21 uchar Led_show_index; // ʾܵĵڼԣת12ģʽֱʹã34ģʽ任ʹ + 22 + 23 /* ж */ + 24 bit Flow_flag; // Ƿת + 25 bit Seg_flicker; // ˸ + 26 bit Show_level; // Ƿʾȼ + 27 uchar Pwm_value; + 28 /* EEPROM */ + 29 uchar old_passwd; + 30 uchar passwd = 123; + 31 + 32 /* ʱ */ + 33 uint time_800ms; + 34 uint time_flow; // תʱ + 35 /* ̴ */ + 36 void Key_Proc() + 37 { + 38 1 static uchar Key_Val, Key_Down, Key_Up, Key_Old; + 39 1 if (Key_Slow_Down) + 40 1 return; + 41 1 Key_Slow_Down = 1; + 42 1 + 43 1 Key_Val = Key_Read(); + 44 1 Key_Down = Key_Val & (Key_Old ^ Key_Val); + 45 1 Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + 46 1 Key_Old = Key_Val; + 47 1 if (Key_Down == 7) + 48 1 Flow_flag ^= 1; + 49 1 if (Key_Down == 6) + 50 1 Seg_show_mode = (++Seg_show_mode) % 3; + 51 1 if (Key_Down == 5) + 52 1 { + 53 2 if (Seg_show_mode == 1) + 54 2 { + C51 COMPILER V9.59.0.0 MAIN 03/06/2024 21:56:43 PAGE 2 + + 55 3 Led_show_mode = (Led_show_mode + 1) % 4; + 56 3 } + 57 2 else if (Seg_show_mode == 2) + 58 2 { + 59 3 Flow_interval = (Flow_interval + 100 > 1200) ? 400 : Flow_interval + 100; + 60 3 } + 61 2 } + 62 1 + 63 1 if (Key_Down == 4) + 64 1 { + 65 2 if (Seg_show_mode == 1) + 66 2 { + 67 3 Led_show_mode = (Led_show_mode == 0) ? 3 : Led_show_mode - 1; + 68 3 } + 69 2 else if (Seg_show_mode == 2) + 70 2 { + 71 3 Flow_interval = (Flow_interval - 100 < 400) ? 1200 : Flow_interval - 100; + 72 3 } + 73 2 } + 74 1 if (Seg_show_mode == 0) + 75 1 if (Key_Old == 4) + 76 1 { + 77 2 Show_level = 1; + 78 2 } + 79 1 // ûаS4 + 80 1 else + 81 1 { + 82 2 Show_level = 0; + 83 2 } + 84 1 } + 85 /* ܴ */ + 86 void Seg_Proc() + 87 { + 88 1 uchar i; + 89 1 if (Seg_Slow_Down) + 90 1 return; + 91 1 Seg_Slow_Down = 1; + 92 1 Led_level = Ad_Read(0x03) / 64; + 93 1 if (Seg_show_mode == 0) + 94 1 { + 95 2 if (Show_level) + 96 2 { + 97 3 memset(Seg_Buf, 10, 6); // + 98 3 Seg_Buf[6] = 11; //- + 99 3 Seg_Buf[7] = Led_level + 1; // + 100 3 } + 101 2 else + 102 2 memset(Seg_Buf, 10, 8); // ȫ + 103 2 } + 104 1 else + 105 1 { + 106 2 Seg_Buf[0] = 11; //- + 107 2 Seg_Buf[1] = Led_show_mode + 1; + 108 2 Seg_Buf[2] = 11; //- + 109 2 Seg_Buf[3] = 10; + 110 2 Seg_Buf[4] = (Flow_interval / 1000 == 0) ? 10 : Flow_interval / 1000 % 10; + 111 2 Seg_Buf[5] = Flow_interval / 100 % 10; + 112 2 Seg_Buf[6] = Flow_interval / 10 % 10; + 113 2 Seg_Buf[7] = Flow_interval % 10; + 114 2 if (Seg_show_mode == 1) + 115 2 { + 116 3 for (i = 0; i < 3; i++) + C51 COMPILER V9.59.0.0 MAIN 03/06/2024 21:56:43 PAGE 3 + + 117 3 Seg_Buf[i] = (Seg_flicker) ? Seg_Buf[i] : 10; + 118 3 } + 119 2 else if (Seg_show_mode == 2) + 120 2 { + 121 3 for (i = 4; i < 8; i++) + 122 3 Seg_Buf[i] = (Seg_flicker) ? Seg_Buf[i] : 10; + 123 3 } + 124 2 } + 125 1 } + 126 + 127 /* LED */ + 128 void Led_Proc() + 129 { + 130 1 uchar i; + 131 1 if (3 * (Led_level) > Pwm_value + 1) + 132 1 { + 133 2 if (Flow_flag) + 134 2 { + 135 3 switch (Led_show_mode) + 136 3 { + 137 4 case 0: + 138 4 for (i = 0; i < 8; i++) + 139 4 ucLed[i] = (i == Led_show_index); + 140 4 break; + 141 4 case 1: + 142 4 for (i = 0; i < 8; i++) + 143 4 ucLed[i] = (7 - i == Led_show_index); + 144 4 break; + 145 4 case 2: + 146 4 for (i = 0; i < 4; i++) + 147 4 { + 148 5 ucLed[i] = (i == Led_show_index); + 149 5 ucLed[7 - i] = (i == Led_show_index); + 150 5 } + 151 4 break; + 152 4 case 3: + 153 4 for (i = 0; i < 4; i++) + 154 4 { + 155 5 ucLed[3 - i] = (i == Led_show_index); + 156 5 ucLed[4 + i] = (i == Led_show_index); + 157 5 } + 158 4 break; + 159 4 } + 160 3 } + 161 2 else + 162 2 { + 163 3 memset(ucLed, 0, 8); + 164 3 } + 165 2 } + 166 1 else + 167 1 { + 168 2 memset(ucLed, 0, 8); + 169 2 } + 170 1 } + 171 + 172 /* ʱ0жϳʼ */ + 173 void Timer0_Init(void) // 1@12.000MHz + 174 { + 175 1 AUXR &= 0x7F; // ʱʱ12Tģʽ + 176 1 TMOD &= 0xF0; // öʱģʽ + 177 1 TL0 = 0x18; // öʱʼֵ + 178 1 TH0 = 0xFC; // öʱʼֵ + C51 COMPILER V9.59.0.0 MAIN 03/06/2024 21:56:43 PAGE 4 + + 179 1 TF0 = 0; // TF0־ + 180 1 TR0 = 1; // ʱ0ʼʱ + 181 1 ET0 = 1; + 182 1 EA = 1; + 183 1 } + 184 + 185 /* ʱ0жϺ */ + 186 void Timer0_ISR(void) interrupt 1 + 187 { + 188 1 if (++Key_Slow_Down == 10) + 189 1 Key_Slow_Down = 0; + 190 1 if (++Seg_Slow_Down == 200) + 191 1 Seg_Slow_Down = 0; + 192 1 if (++Seg_Pos == 8) + 193 1 Seg_Pos = 0; + 194 1 if (++Pwm_value == 12) + 195 1 Pwm_value = 0; + 196 1 if (++time_800ms == 800) + 197 1 { + 198 2 Seg_flicker ^= 1; + 199 2 time_800ms = 0; + 200 2 } + 201 1 if (Flow_flag) + 202 1 { + 203 2 if (++time_flow >= Flow_interval) + 204 2 { + 205 3 time_flow = 0; + 206 3 Led_show_index = (++Led_show_index) % 8; + 207 3 } + 208 2 } + 209 1 else + 210 1 { + 211 2 time_flow = 0; + 212 2 Led_show_index = 0; + 213 2 } + 214 1 Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + 215 1 Led_Disp(Seg_Pos, ucLed[Seg_Pos]); + 216 1 } + 217 + 218 void main() + 219 { + 220 1 System_Init(); + 221 1 Timer0_Init(); + 222 1 + 223 1 while (1) + 224 1 { + 225 2 Key_Proc(); + 226 2 Seg_Proc(); + 227 2 Led_Proc(); + 228 2 } + 229 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 965 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = 44 2 + IDATA SIZE = ---- ---- + BIT SIZE = 3 ---- +END OF MODULE INFORMATION. + + C51 COMPILER V9.59.0.0 MAIN 03/06/2024 21:56:43 PAGE 5 + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/onewire.lst b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/onewire.lst new file mode 100644 index 0000000..c7f63e7 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/onewire.lst @@ -0,0 +1,112 @@ +C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1 + + +C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE +OBJECT MODULE PLACED IN .\Objects\onewire.obj +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ + -ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj) + +line level source + + 1 /* # 单总线代码片段说明 + 2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。 + 3 2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、 + -行速度和试题 + 4 中对单片机时钟频率的要求,进行代码调试和修改。 + 5 */ + 6 #include "onewire.h" + 7 #include "REG52.H" + 8 sbit DQ = P1 ^ 4; // 单总线数据口 + 9 // + 10 void Delay_OneWire(unsigned int t) + 11 { + 12 1 unsigned char i; + 13 1 while (t--) + 14 1 { + 15 2 for (i = 0; i < 12; i++) + 16 2 ; + 17 2 } + 18 1 } + 19 + 20 // + 21 void Write_DS18B20(unsigned char dat) + 22 { + 23 1 unsigned char i; + 24 1 for (i = 0; i < 8; i++) + 25 1 { + 26 2 DQ = 0; + 27 2 DQ = dat & 0x01; + 28 2 Delay_OneWire(5); + 29 2 DQ = 1; + 30 2 dat >>= 1; + 31 2 } + 32 1 Delay_OneWire(5); + 33 1 } + 34 + 35 // + 36 unsigned char Read_DS18B20(void) + 37 { + 38 1 unsigned char i; + 39 1 unsigned char dat; + 40 1 + 41 1 for (i = 0; i < 8; i++) + 42 1 { + 43 2 DQ = 0; + 44 2 dat >>= 1; + 45 2 DQ = 1; + 46 2 if (DQ) + 47 2 { + 48 3 dat |= 0x80; + 49 3 } + 50 2 Delay_OneWire(5); + 51 2 } + 52 1 return dat; + 53 1 } + C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2 + + 54 + 55 // + 56 bit init_ds18b20(void) + 57 { + 58 1 bit initflag = 0; + 59 1 + 60 1 DQ = 1; + 61 1 Delay_OneWire(12); + 62 1 DQ = 0; + 63 1 Delay_OneWire(80); + 64 1 DQ = 1; + 65 1 Delay_OneWire(10); + 66 1 initflag = DQ; + 67 1 Delay_OneWire(5); + 68 1 + 69 1 return initflag; + 70 1 } + 71 + 72 float rd_temperature() + 73 { + 74 1 unsigned char low, high; + 75 1 init_ds18b20(); + 76 1 Write_DS18B20(0xcc); // 跳过ROM + 77 1 Write_DS18B20(0x44); // 启动温度转换 + 78 1 + 79 1 init_ds18b20(); + 80 1 Write_DS18B20(0xcc); // 跳过ROM + 81 1 Write_DS18B20(0xbe); // 读取温度值 + 82 1 low = Read_DS18B20(); + 83 1 high = Read_DS18B20(); + 84 1 return (float)(high << 8 | low) * 0.0625; + 85 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 195 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- ---- + IDATA SIZE = ---- ---- + BIT SIZE = ---- 1 +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/zuolan.m51 b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/zuolan.m51 new file mode 100644 index 0000000..224d293 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Listings/zuolan.m51 @@ -0,0 +1,792 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +D:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\Led.obj, .\Objects\Seg.obj, .\Objects\Key.obj, .\Objects\Init. +>> obj, .\Objects\iic.obj TO .\Objects\zuolan PRINT (.\Listings\zuolan.m51) RAMSIZE (256) + + +MEMORY MODEL: SMALL + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\Led.obj (LED) + .\Objects\Seg.obj (SEG) + .\Objects\Key.obj (KEY) + .\Objects\Init.obj (INIT) + .\Objects\iic.obj (IIC) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\zuolan (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 0014H UNIT ?DT?SEG + DATA 001CH 0002H UNIT ?DT?LED + DATA 001EH 0001H UNIT _DATA_GROUP_ + 001FH 0001H *** GAP *** + BIT 0020H.0 0000H.3 UNIT ?BI?MAIN + 0020H.3 0000H.5 *** GAP *** + DATA 0021H 002CH UNIT ?DT?MAIN + IDATA 004DH 0001H UNIT ?STACK + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + 0003H 0008H *** GAP *** + CODE 000BH 0003H ABSOLUTE + CODE 000EH 010CH UNIT ?PR?LED_PROC?MAIN + CODE 011AH 0101H UNIT ?PR?SEG_PROC?MAIN + CODE 021BH 00CAH UNIT ?PR?KEY_PROC?MAIN + CODE 02E5H 00C8H UNIT ?PR?TIMER0_ISR?MAIN + CODE 03ADH 008CH UNIT ?C_C51STARTUP + CODE 0439H 0081H UNIT ?C?LIB_CODE + CODE 04BAH 007AH UNIT ?PR?KEY_READ?KEY + CODE 0534H 0044H UNIT ?C_INITSEG + CODE 0578H 003AH UNIT ?PR?_LED_DISP?LED + CODE 05B2H 0036H UNIT ?PR?_SEG_DISP?SEG + CODE 05E8H 0035H UNIT ?PR?_I2CSENDBYTE?IIC + CODE 061DH 002AH UNIT ?PR?_AD_READ?IIC + CODE 0647H 0026H UNIT ?PR?I2CRECEIVEBYTE?IIC + CODE 066DH 001DH UNIT ?PR?SYSTEM_INIT?INIT + CODE 068AH 001AH UNIT ?PR?_I2C_DELAY?IIC + CODE 06A4H 0018H UNIT ?PR?_I2CSENDACK?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 2 + + + CODE 06BCH 0015H UNIT ?PR?TIMER0_INIT?MAIN + CODE 06D1H 0015H UNIT ?PR?I2CWAITACK?IIC + CODE 06E6H 0011H UNIT ?PR?MAIN?MAIN + CODE 06F7H 000FH UNIT ?PR?I2CSTART?IIC + CODE 0706H 000CH UNIT ?PR?I2CSTOP?IIC + + + +OVERLAY MAP OF MODULE: .\Objects\zuolan (MAIN) + + +SEGMENT DATA_GROUP + +--> CALLED SEGMENT START LENGTH +---------------------------------------------- +?PR?TIMER0_ISR?MAIN ----- ----- + +--> ?PR?_SEG_DISP?SEG + +--> ?PR?_LED_DISP?LED + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?SYSTEM_INIT?INIT + +--> ?PR?TIMER0_INIT?MAIN + +--> ?PR?KEY_PROC?MAIN + +--> ?PR?SEG_PROC?MAIN + +--> ?PR?LED_PROC?MAIN + +?PR?KEY_PROC?MAIN ----- ----- + +--> ?PR?KEY_READ?KEY + +?PR?SEG_PROC?MAIN 001EH 0001H + +--> ?PR?_AD_READ?IIC + +?PR?_AD_READ?IIC ----- ----- + +--> ?PR?I2CSTART?IIC + +--> ?PR?I2CWAITACK?IIC + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?I2CRECEIVEBYTE?IIC + +--> ?PR?_I2CSENDACK?IIC + +--> ?PR?I2CSTOP?IIC + +?PR?I2CSTART?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CWAITACK?IIC ----- ----- + +--> ?PR?_I2CSENDBYTE?IIC + +--> ?PR?_I2C_DELAY?IIC + +?PR?_I2CSENDBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CRECEIVEBYTE?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 3 + + + +?PR?_I2CSENDACK?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?I2CSTOP?IIC ----- ----- + +--> ?PR?_I2C_DELAY?IIC + +?PR?LED_PROC?MAIN 001EH 0001H + + + +SYMBOL TABLE OF MODULE: .\Objects\zuolan (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 + C:02E5H PUBLIC Timer0_ISR + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + B:00A8H.7 PUBLIC EA + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:0025H PUBLIC time_800ms + C:000EH PUBLIC Led_Proc + D:0027H PUBLIC Seg_Point + D:00A8H PUBLIC IE + D:002FH PUBLIC Led_level + D:0030H PUBLIC passwd + C:011AH PUBLIC Seg_Proc + B:0020H.0 PUBLIC Flow_flag + D:00B8H PUBLIC IP + B:0020H.1 PUBLIC Show_level + D:0031H PUBLIC Seg_Buf + C:021BH PUBLIC Key_Proc + D:0039H PUBLIC Seg_Slow_Down + D:00D8H PUBLIC CCON + C:06E6H PUBLIC main + C:06BCH PUBLIC Timer0_Init + D:003AH PUBLIC Key_Slow_Down + D:003BH PUBLIC Seg_Pos + D:0098H PUBLIC SCON + D:0089H PUBLIC TMOD + D:0088H PUBLIC TCON + D:003CH PUBLIC Pwm_value + D:003DH PUBLIC Led_show_index + D:003EH PUBLIC old_passwd + D:008EH PUBLIC AUXR + D:003FH PUBLIC Led_show_mode + B:00A8H.1 PUBLIC ET0 + B:0088H.5 PUBLIC TF0 + D:0040H PUBLIC time_flow + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 4 + + + D:0042H PUBLIC Seg_show_mode + D:008CH PUBLIC TH0 + D:008AH PUBLIC TL0 + B:0088H.4 PUBLIC TR0 + B:0020H.2 PUBLIC Seg_flicker + D:0043H PUBLIC Flow_interval + D:0045H PUBLIC ucLed + D:00D0H PUBLIC PSW + ------- PROC KEY_PROC + ------- DO + D:0021H SYMBOL Key_Val + D:0022H SYMBOL Key_Down + D:0023H SYMBOL Key_Up + D:0024H SYMBOL Key_Old + ------- ENDDO + C:021BH LINE# 36 + C:021BH LINE# 37 + C:021BH LINE# 39 + C:0222H LINE# 41 + C:0225H LINE# 43 + C:022AH LINE# 44 + C:0233H LINE# 45 + C:0239H LINE# 46 + C:023CH LINE# 47 + C:0245H LINE# 48 + C:024AH LINE# 49 + C:0250H LINE# 50 + C:025BH LINE# 51 + C:0261H LINE# 52 + C:0261H LINE# 53 + C:0269H LINE# 54 + C:0269H LINE# 55 + C:0270H LINE# 56 + C:0272H LINE# 57 + C:0278H LINE# 58 + C:0278H LINE# 59 + C:0294H LINE# 60 + C:0294H LINE# 61 + C:0294H LINE# 63 + C:029AH LINE# 64 + C:029AH LINE# 65 + C:02A2H LINE# 66 + C:02A2H LINE# 67 + C:02B0H LINE# 68 + C:02B2H LINE# 69 + C:02B8H LINE# 70 + C:02B8H LINE# 71 + C:02D5H LINE# 72 + C:02D5H LINE# 73 + C:02D5H LINE# 74 + C:02D9H LINE# 75 + C:02DFH LINE# 76 + C:02DFH LINE# 77 + C:02E1H LINE# 78 + C:02E2H LINE# 81 + C:02E2H LINE# 82 + C:02E4H LINE# 83 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 5 + + + C:02E4H LINE# 84 + ------- ENDPROC KEY_PROC + ------- PROC SEG_PROC + ------- DO + D:001EH SYMBOL i + ------- ENDDO + C:011AH LINE# 86 + C:011AH LINE# 87 + C:011AH LINE# 89 + C:0121H LINE# 91 + C:0124H LINE# 92 + C:0131H LINE# 93 + C:0135H LINE# 94 + C:0135H LINE# 95 + C:0138H LINE# 96 + C:0138H LINE# 97 + C:0145H LINE# 98 + C:0148H LINE# 99 + C:014DH LINE# 100 + C:014EH LINE# 102 + C:015DH LINE# 103 + C:015DH LINE# 105 + C:015DH LINE# 106 + C:0160H LINE# 107 + C:0165H LINE# 108 + C:0168H LINE# 109 + C:016BH LINE# 110 + C:0189H LINE# 111 + C:019DH LINE# 112 + C:01B1H LINE# 113 + C:01BEH LINE# 114 + C:01C7H LINE# 115 + C:01C7H LINE# 116 + C:01D4H LINE# 117 + C:01EDH LINE# 118 + C:01EDH LINE# 119 + C:01F3H LINE# 120 + C:01F3H LINE# 121 + C:0201H LINE# 122 + C:021AH LINE# 123 + C:021AH LINE# 124 + C:021AH LINE# 125 + ------- ENDPROC SEG_PROC + ------- PROC LED_PROC + ------- DO + D:001EH SYMBOL i + ------- ENDDO + C:000EH LINE# 128 + C:000EH LINE# 129 + C:000EH LINE# 131 + C:002CH LINE# 132 + C:002CH LINE# 133 + C:0032H LINE# 134 + C:0032H LINE# 135 + C:0047H LINE# 136 + C:0047H LINE# 137 + C:0047H LINE# 138 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 6 + + + C:0058H LINE# 139 + C:006EH LINE# 140 + C:006EH LINE# 141 + C:006EH LINE# 142 + C:007FH LINE# 143 + C:0098H LINE# 144 + C:0098H LINE# 145 + C:0098H LINE# 146 + C:00A6H LINE# 147 + C:00A6H LINE# 148 + C:00B8H LINE# 149 + C:00CDH LINE# 150 + C:00D1H LINE# 151 + C:00D1H LINE# 152 + C:00D1H LINE# 153 + C:00DFH LINE# 154 + C:00DFH LINE# 155 + C:00F4H LINE# 156 + C:0106H LINE# 157 + C:010AH LINE# 158 + C:010AH LINE# 159 + C:010AH LINE# 160 + C:010AH LINE# 167 + C:010AH LINE# 168 + C:0119H LINE# 169 + C:0119H LINE# 170 + ------- ENDPROC LED_PROC + ------- PROC TIMER0_INIT + C:06BCH LINE# 173 + C:06BCH LINE# 174 + C:06BCH LINE# 175 + C:06BFH LINE# 176 + C:06C2H LINE# 177 + C:06C5H LINE# 178 + C:06C8H LINE# 179 + C:06CAH LINE# 180 + C:06CCH LINE# 181 + C:06CEH LINE# 182 + C:06D0H LINE# 183 + ------- ENDPROC TIMER0_INIT + ------- PROC TIMER0_ISR + C:02E5H LINE# 186 + C:0302H LINE# 188 + C:030AH LINE# 189 + C:030CH LINE# 190 + C:0314H LINE# 191 + C:0316H LINE# 192 + C:031EH LINE# 193 + C:0320H LINE# 194 + C:0328H LINE# 195 + C:032AH LINE# 196 + C:033BH LINE# 197 + C:033BH LINE# 198 + C:0340H LINE# 199 + C:0346H LINE# 200 + C:0346H LINE# 201 + C:0349H LINE# 202 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 7 + + + C:0349H LINE# 203 + C:035AH LINE# 204 + C:035AH LINE# 205 + C:0360H LINE# 206 + C:0368H LINE# 207 + C:0368H LINE# 208 + C:036AH LINE# 210 + C:036AH LINE# 211 + C:0370H LINE# 212 + C:0373H LINE# 213 + C:0373H LINE# 214 + C:0386H LINE# 215 + C:0392H LINE# 216 + ------- ENDPROC TIMER0_ISR + ------- PROC MAIN + C:06E6H LINE# 218 + C:06E6H LINE# 219 + C:06E6H LINE# 220 + C:06E9H LINE# 221 + C:06ECH LINE# 223 + C:06ECH LINE# 224 + C:06ECH LINE# 225 + C:06EFH LINE# 226 + C:06F2H LINE# 227 + C:06F5H LINE# 228 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE LED + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:0578H PUBLIC _Led_Disp + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC _LED_DISP + D:0007H SYMBOL addr + D:0005H SYMBOL enable + ------- DO + D:001CH SYMBOL temp + D:001DH SYMBOL temp_old + ------- ENDDO + C:0578H LINE# 5 + C:0578H LINE# 6 + C:0578H LINE# 10 + C:057BH LINE# 11 + C:058AH LINE# 13 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 8 + + + C:0598H LINE# 14 + C:059EH LINE# 15 + C:059EH LINE# 16 + C:05A3H LINE# 17 + C:05ABH LINE# 18 + C:05AEH LINE# 19 + C:05B1H LINE# 20 + C:05B1H LINE# 21 + ------- ENDPROC _LED_DISP + ------- ENDMOD LED + + ------- MODULE SEG + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:05B2H PUBLIC _Seg_Disp + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:0008H PUBLIC seg_dula + D:0014H PUBLIC seg_wela + D:00D0H PUBLIC PSW + ------- PROC _SEG_DISP + D:0007H SYMBOL wela + D:0005H SYMBOL dula + D:0003H SYMBOL point + C:05B2H LINE# 6 + C:05B2H LINE# 7 + C:05B2H LINE# 9 + C:05B5H LINE# 10 + C:05BDH LINE# 13 + C:05C4H LINE# 14 + C:05CCH LINE# 15 + C:05CFH LINE# 18 + C:05D6H LINE# 19 + C:05D9H LINE# 20 + C:05DCH LINE# 21 + C:05E4H LINE# 22 + C:05E7H LINE# 23 + ------- ENDPROC _SEG_DISP + ------- ENDMOD SEG + + ------- MODULE KEY + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 9 + + + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + C:04BAH PUBLIC Key_Read + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + B:00B0H.0 PUBLIC P30 + D:0098H PUBLIC SCON + B:00B0H.1 PUBLIC P31 + D:0088H PUBLIC TCON + B:00B0H.2 PUBLIC P32 + B:00C0H.2 PUBLIC P42 + B:00B0H.3 PUBLIC P33 + B:00B0H.4 PUBLIC P34 + B:00C0H.4 PUBLIC P44 + B:00B0H.5 PUBLIC P35 + B:00A8H.1 PUBLIC ET0 + D:00D0H PUBLIC PSW + ------- PROC KEY_READ + ------- DO + D:0007H SYMBOL temp + ------- ENDDO + C:04BAH LINE# 2 + C:04BAH LINE# 3 + C:04BAH LINE# 4 + C:04BCH LINE# 5 + C:04BEH LINE# 6 + C:04C0H LINE# 7 + C:04C2H LINE# 8 + C:04C4H LINE# 9 + C:04C6H LINE# 10 + C:04C9H LINE# 11 + C:04CBH LINE# 12 + C:04CEH LINE# 13 + C:04D0H LINE# 14 + C:04D3H LINE# 15 + C:04D5H LINE# 16 + C:04D8H LINE# 17 + C:04DAH LINE# 18 + C:04DCH LINE# 19 + C:04DEH LINE# 20 + C:04E0H LINE# 21 + C:04E2H LINE# 22 + C:04E5H LINE# 23 + C:04E7H LINE# 24 + C:04EAH LINE# 25 + C:04ECH LINE# 26 + C:04EFH LINE# 27 + C:04F1H LINE# 28 + C:04F4H LINE# 29 + C:04F6H LINE# 30 + C:04F8H LINE# 31 + C:04FAH LINE# 32 + C:04FCH LINE# 33 + C:04FEH LINE# 34 + C:0501H LINE# 35 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 10 + + + C:0503H LINE# 36 + C:0506H LINE# 37 + C:0508H LINE# 38 + C:050BH LINE# 39 + C:050DH LINE# 40 + C:0510H LINE# 41 + C:0512H LINE# 42 + C:0514H LINE# 43 + C:0516H LINE# 44 + C:0518H LINE# 45 + C:051AH LINE# 46 + C:051DH LINE# 47 + C:051FH LINE# 48 + C:0522H LINE# 49 + C:0524H LINE# 50 + C:0527H LINE# 51 + C:0529H LINE# 52 + C:052CH LINE# 53 + C:052EH LINE# 54 + C:0530H LINE# 55 + C:0533H LINE# 56 + C:0533H LINE# 57 + ------- ENDPROC KEY_READ + ------- ENDMOD KEY + + ------- MODULE INIT + C:0000H SYMBOL _ICE_DUMMY_ + C:066DH PUBLIC System_Init + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + D:00D0H PUBLIC PSW + ------- PROC SYSTEM_INIT + C:066DH LINE# 3 + C:066DH LINE# 4 + C:066DH LINE# 5 + C:0670H LINE# 6 + C:0678H LINE# 7 + C:067BH LINE# 9 + C:067EH LINE# 10 + C:0686H LINE# 11 + C:0689H LINE# 12 + ------- ENDPROC SYSTEM_INIT + ------- ENDMOD INIT + + ------- MODULE IIC + C:0000H SYMBOL _ICE_DUMMY_ + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 11 + + + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:061DH PUBLIC _Ad_Read + D:00C0H PUBLIC P4 + D:00C8H PUBLIC P5 + D:00E8H PUBLIC P6 + D:00F8H PUBLIC P7 + D:00A8H PUBLIC IE + C:068EH SYMBOL _I2C_Delay + D:00B8H PUBLIC IP + C:0647H PUBLIC I2CReceiveByte + D:00D8H PUBLIC CCON + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + B:00A0H.1 PUBLIC sda + B:00A0H.0 PUBLIC scl + C:06F7H PUBLIC I2CStart + C:06A4H PUBLIC _I2CSendAck + C:05E8H PUBLIC _I2CSendByte + C:06D4H PUBLIC I2CWaitAck + C:0706H PUBLIC I2CStop + D:00D0H PUBLIC PSW + C:068AH SYMBOL L?0022 + ------- PROC L?0021 + ------- ENDPROC L?0021 + C:068AH SYMBOL L?0022 + ------- PROC _I2C_DELAY + D:0007H SYMBOL n + C:068EH LINE# 12 + C:068EH LINE# 13 + C:068EH LINE# 15 + C:068EH LINE# 16 + C:068FH LINE# 17 + C:0690H LINE# 18 + C:0691H LINE# 19 + C:0692H LINE# 20 + C:0693H LINE# 21 + C:0694H LINE# 22 + C:0695H LINE# 23 + C:0696H LINE# 24 + C:0697H LINE# 25 + C:0698H LINE# 26 + C:0699H LINE# 27 + C:069AH LINE# 28 + C:069BH LINE# 29 + C:069CH LINE# 30 + C:069DH LINE# 31 + C:06A3H LINE# 32 + ------- ENDPROC _I2C_DELAY + ------- PROC I2CSTART + C:06F7H LINE# 35 + C:06F7H LINE# 36 + C:06F7H LINE# 37 + C:06F9H LINE# 38 + C:06F9H LINE# 39 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 12 + + + C:06FCH LINE# 40 + C:06FEH LINE# 41 + C:0703H LINE# 42 + C:0705H LINE# 43 + ------- ENDPROC I2CSTART + ------- PROC I2CSTOP + C:0706H LINE# 46 + C:0706H LINE# 47 + C:0706H LINE# 48 + C:0708H LINE# 49 + C:0708H LINE# 50 + C:070BH LINE# 51 + C:070DH LINE# 52 + ------- ENDPROC I2CSTOP + ------- PROC _I2CSENDBYTE + D:0005H SYMBOL byt + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:05E8H LINE# 56 + C:05EAH LINE# 57 + C:05EAH LINE# 60 + C:05F6H LINE# 61 + C:05F6H LINE# 62 + C:05F8H LINE# 63 + C:05FDH LINE# 64 + C:0601H LINE# 65 + C:0601H LINE# 66 + C:0603H LINE# 67 + C:0605H LINE# 69 + C:0605H LINE# 70 + C:0607H LINE# 71 + C:0607H LINE# 72 + C:060CH LINE# 73 + C:060EH LINE# 74 + C:0612H LINE# 75 + C:0617H LINE# 76 + C:061AH LINE# 78 + C:061CH LINE# 79 + ------- ENDPROC _I2CSENDBYTE + ------- PROC I2CRECEIVEBYTE + ------- DO + D:0005H SYMBOL da + D:0004H SYMBOL i + ------- ENDDO + C:0647H LINE# 82 + C:0647H LINE# 83 + C:0647H LINE# 86 + C:0653H LINE# 87 + C:0653H LINE# 88 + C:0653H LINE# 89 + C:0656H LINE# 90 + C:065AH LINE# 91 + C:065DH LINE# 92 + C:0660H LINE# 93 + C:0662H LINE# 94 + C:0667H LINE# 95 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 13 + + + C:066AH LINE# 96 + C:066CH LINE# 97 + ------- ENDPROC I2CRECEIVEBYTE + ------- PROC L?0023 + ------- ENDPROC L?0023 + ------- PROC I2CWAITACK + ------- DO + D:0005H SYMBOL ackbit + ------- ENDDO + C:06D4H LINE# 100 + C:06D4H LINE# 101 + C:06D4H LINE# 104 + C:06D4H LINE# 105 + C:06D7H LINE# 106 + C:06DCH LINE# 107 + C:06DEH LINE# 108 + C:06E3H LINE# 110 + C:06E5H LINE# 111 + ------- ENDPROC I2CWAITACK + ------- PROC _I2CSENDACK + D:0007H SYMBOL ackbit + C:06A4H LINE# 114 + C:06A4H LINE# 115 + C:06A4H LINE# 116 + C:06A6H LINE# 117 + C:06ABH LINE# 118 + C:06B0H LINE# 119 + C:06B0H LINE# 120 + C:06B3H LINE# 121 + C:06B5H LINE# 122 + C:06B7H LINE# 123 + ------- ENDPROC _I2CSENDACK + ------- PROC _AD_READ + D:0003H SYMBOL addr + ------- DO + D:0005H SYMBOL temp + ------- ENDDO + C:061DH LINE# 126 + C:061FH LINE# 127 + C:061FH LINE# 130 + C:0622H LINE# 131 + C:0624H LINE# 132 + C:0627H LINE# 133 + C:0629H LINE# 134 + C:062CH LINE# 135 + C:062FH LINE# 136 + C:0634H LINE# 137 + C:0637H LINE# 138 + C:063CH LINE# 139 + C:0641H LINE# 140 + C:0644H LINE# 141 + C:0646H LINE# 142 + ------- ENDPROC _AD_READ + ------- ENDMOD IIC + + ------- MODULE ?C?UIDIV + C:0439H PUBLIC ?C?UIDIV + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/06/2024 21:56:43 PAGE 14 + + + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?MEMSET + C:048EH PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET + +Program Size: data=76.3 xdata=0 code=1802 +LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Init.obj b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Init.obj new file mode 100644 index 0000000..149977a Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Init.obj differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Key.obj b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Key.obj new file mode 100644 index 0000000..ddf972c Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Key.obj differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Led.obj b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Led.obj new file mode 100644 index 0000000..405fff2 Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Led.obj differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Seg.obj b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Seg.obj new file mode 100644 index 0000000..dfe8aba Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Seg.obj differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Uart.obj b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Uart.obj new file mode 100644 index 0000000..7f97aaa Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Uart.obj differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Ultrasonic.obj b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Ultrasonic.obj new file mode 100644 index 0000000..8b19cea Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/Ultrasonic.obj differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/ds1302.obj b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/ds1302.obj new file mode 100644 index 0000000..cf2514d Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/ds1302.obj differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/iic.obj b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/iic.obj new file mode 100644 index 0000000..f501535 Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/iic.obj differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/main.obj b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/main.obj new file mode 100644 index 0000000..740371c Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/main.obj differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/onewire.obj b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/onewire.obj new file mode 100644 index 0000000..772b6d9 Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/onewire.obj differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan new file mode 100644 index 0000000..abfb2dc Binary files /dev/null and b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan differ diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan.build_log.htm b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan.build_log.htm new file mode 100644 index 0000000..a6318ed --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan.build_log.htm @@ -0,0 +1,41 @@ + + +
+

Vision Build Log

+

Tool Versions:

+IDE-Version: Vision V5.14.0.0 +Copyright (C) 2015 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: 1 1, 1, LIC=SDJT4-FUS7S-7EXHC-79UJQ-6CJLW-REJ2H + +Tool Versions: +Toolchain: PK51 Prof. Developers Kit Version: 9.59.0.0 +Toolchain Path: D:\Keil_v5\C51\BIN +C Compiler: C51.exe V9.59.0.0 +Assembler: A51.exe V8.2.7.0 +Linker/Locator: BL51.exe V6.22.2.0 +Library Manager: LIB51.exe V4.30.1.0 +Hex Converter: OH51.exe V2.7.0.0 +CPU DLL: S8051.DLL V3.122.0.0 +Dialog DLL: DP51.DLL V2.66.0.0 +Target DLL: VDM51.DLL V1.00 +Dialog DLL: TP51.DLL V2.60.0.0 + +

Project:

+C:\Users\haze\Desktop\ھŽʡ\User\zuolan.uvproj +Project File Date: 02/24/2024 + +

Output:

+Rebuild target 'zuolan' +compiling main.c... +compiling Led.c... +compiling Seg.c... +compiling Key.c... +compiling Init.c... +compiling iic.c... +linking... +Program Size: data=76.3 xdata=0 code=1802 +creating hex file from ".\Objects\zuolan"... +".\Objects\zuolan" - 0 Error(s), 0 Warning(s). +
+ + diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan.hex b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan.hex new file mode 100644 index 0000000..55bf246 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan.hex @@ -0,0 +1,140 @@ +:10053400084500000000000000000831050A0A0A0E +:100544000A0A0A0A0827000000000000000002430B +:05055400019001307B65 +:10021B00E53A60030202E4753A011204BA8F21E554 +:10022B00246521FF5521F522E521F45FF523852176 +:10023B0024AF227E00EF64077005A200B39200EF9B +:10024B0064064E700B0542E54275F0038485F0425F +:10025B00E52264057033AF42FEEF64017009E53FA0 +:10026B00045403F53F8022EF64024E701CE54424D6 +:10027B0064FFE43543FED3EF94B0EE940440067E66 +:10028B00017F9080008E438F44E5226404703BAF66 +:10029B0042FEEF64017010E53F70047D038004E5BE +:1002AB003F14FD8D3F8023EF64024E701DE5442407 +:1002BB009CFFE54334FFFEC3EF9490EE9401500690 +:1002CB007E047FB080008E438F44E542700BE524A3 +:0902DB0064047003D20122C20187 +:0102E40022F7 +:10011A00E539600302021A7539017F0312061DEFE1 +:10012A00C413135403F52FE5427028300116FE7FDD +:10013A00067D0AFB7A00793112048E75370BE52F9A +:10014A0004F538227E007F087D0A7B007A00793127 +:10015A0002048E75310BE53F04F53275330B7534A5 +:10016A000AAE43AF447C037DE8120439EF4E7004B3 +:10017A007F0A80097C007D0A120439AF058F35AEEB +:10018A0043AF447C007D641204397C007D0A12046A +:10019A00398D36AE43AF447C007D0A1204397C00A7 +:1001AA007D0A1204398D37AE43AF447C007D0A12B2 +:1001BA0004398D38AF427E00EF64017026F51EC304 +:1001CA00E51E9403748094805046300209743125E8 +:1001DA001EF8E6FD80027D0A7431251EF8A6050583 +:1001EA001E80DCEF64024E7027751E04C3E51E9460 +:1001FA00087480948050193002097431251EF8E67B +:10020A00FF80027F0A7431251EF8A607051E80DCCE +:01021A0022C1 +:10000E00E53C2401FDE433FCE52F75F003A4D39DFC +:10001E00EC6480F8E5F0648098500302010A200039 +:10002E000302010AE53F14603714605E1470030288 +:10003E0000D124036003020119E4F51EC3E51E94EA +:10004E0008748094804003020119E51EB53D047FBB +:10005E000180027F007445251EF8A607051E80DC70 +:10006E00E4F51EC3E51E94087480948040030201DB +:10007E0019C37407951EB53D047F0180027F00747D +:10008E0045251EF8A607051E80D9E4F51EC3E51EFC +:10009E009404748094805073E51EB53D047F0180F6 +:1000AE00027F007445251EF8A607E51EB53D047FA8 +:1000BE000180027F00C37407951E2445F8A607052C +:1000CE001E80CAE4F51EC3E51E940474809480500D +:1000DE003AE51EB53D047F0180027F00C37403958F +:1000EE001E2445F8A607E51EB53D047F0180027F5C +:1000FE00007449251EF8A607051E80CA7E007F08DB +:0B010E007D007B007A00794512048E12 +:0101190022C3 +:1006BC00538E7F5389F0758A18758CFCC28DD28C41 +:0506CC00D2A9D2AF220B +:03000B000202E509 +:1002E500C0E0C0F0C083C082C0D075D000C000C0DF +:1002F50001C002C003C004C005C006C007053AE539 +:100305003A640A7002F53A0539E53964C87002F5B0 +:1003150039053BE53B64087002F53B053CE53C646B +:100325000C7002F53C0526E52670020525FFAE2575 +:10033500BE030EBF200BA202B392027525007526DF +:10034500003000210541E54170020540C39544E5B3 +:100355004095434019754000754100053DE53D5404 +:1003650007F53D8009754000754100753D00743104 +:10037500253BF8E6FD7427253BF8E6FBAF3B120568 +:10038500B27445253BF8E6FDAF3B120578D007D0A2 +:1003950006D005D004D003D002D001D000D0D0D0F3 +:0803A50082D083D0F0D0E032D9 +:1006E60012066D1206BC12021B12011A12000E80AF +:0106F600F50E +:06055900011C00011DFF62 +:10057800ED600FA8077401088002C333D8FC421C41 +:10058800800EA8077401088002C333D8FCF4521CFB +:10059800E51C651D6013E51CF4F580E5A0541F44B7 +:0905A80080F5A053A01F851C1D65 +:0105B1002227 +:10055F000C08C0F9A4B0999282F88090FFBF0814DC +:08056F00010204081020408085 +:1005B2007580FFE5A0541F44E0F5A074142FF8E6FF +:1005C200F580E5A0541F44C0F5A053A01F74082D68 +:1005D200F8E6F580EB600353807FE5A0541F44E00A +:0605E200F5A053A01F224A +:1004BA00E4FFC2A9C2C4D2C2D2B5D2B420B3027F69 +:1004CA000420B2027F0520B1027F0620B0027F0716 +:1004DA00D2C4C2C2D2B5D2B420B3027F0820B202BB +:1004EA007F0920B1027F0A20B0027F0BD2C4D2C298 +:1004FA00C2B5D2B420B3027F0C20B2027F0D20B164 +:10050A00027F0E20B0027F0FD2C4D2C2D2B5C2B4CB +:10051A0020B3027F1020B2027F1120B1027F122085 +:09052A00B0027F13D2A975B0FFE5 +:0105330022A5 +:10066D007580FFE5A0541F4480F5A053A01FE4F54D +:0D067D0080E5A0541F44A0F5A053A01F224B +:04068A00D2A07F0576 +:10068E00000000000000000000000000000000AEAE +:06069E00071FEE70EB22C5 +:0F06F700D2A112068AC2A17F0512068EC2A022CE +:0C070600C2A112068AD2A17F0502068E55 +:0205E800AD075D +:1005EA00E4FCECC39408748094805024C2A07F0574 +:1005FA0012068EED30E704D2A18002C2A17F051255 +:10060A00068ED2A0ED25E0FD7F0512068E0C80D263 +:02061A00C2A07C +:01061C0022BB +:10064700E4FCECC3940874809480501712068AED7A +:1006570025E0FD30A103430501C2A07F0512068EE8 +:050667000C80DFAF056F +:01066C00226B +:0306D1001205E827 +:1006D40012068AA2A1E433FDC2A07F0512068EAFE2 +:0106E4000510 +:0106E50022F2 +:1006A400C2A0EF24FF92A17F0512068E12068AC211 +:0806B400A0D2A17F0502068E11 +:02061D00AB0729 +:10061F001206F77F901206D1AF031206D11206F71A +:10062F007F911205E81206D4120647AD077F01121B +:07063F0006A4120706AF0537 +:010646002291 +:030000000203AD4B +:0C03AD00787FE4F6D8FD75814C0203F463 +:10043900BC000BBE0029EF8DF084FFADF022E4CCA7 +:10044900F875F008EF2FFFEE33FEEC33FCEE9DEC70 +:10045900984005FCEE9DFE0FD5F0E9E4CEFD22EDB6 +:10046900F8F5F0EE8420D21CFEADF075F008EF2F00 +:10047900FFED33FD4007985006D5F0F222C398FDF1 +:050489000FD5F0EA228E +:10048E00EF4E6012EF60010EEDBB010B89828A8385 +:10049E00F0A3DFFCDEFA2289F05007F709DFFCA992 +:0C04AE00F022BBFEFCF309DFFCA9F022E9 +:1003B9000206E6E493A3F8E493A34003F68001F26E +:1003C90008DFF48029E493A3F85407240CC8C33345 +:1003D900C4540F4420C8834004F456800146F6DF14 +:1003E900E4800B0102040810204080900534E47E6B +:1003F900019360BCA3FF543F30E509541FFEE49309 +:10040900A360010ECF54C025E060A840B8E493A3CF +:10041900FAE493A3F8E493A3C8C582C8CAC583CAFA +:10042900F0A3C8C582C8CAC583CADFE9DEE780BEB2 +:010577000083 +:00000001FF diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan.lnp b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan.lnp new file mode 100644 index 0000000..f151577 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/Objects/zuolan.lnp @@ -0,0 +1,8 @@ +".\Objects\main.obj", +".\Objects\Led.obj", +".\Objects\Seg.obj", +".\Objects\Key.obj", +".\Objects\Init.obj", +".\Objects\iic.obj" +TO ".\Objects\zuolan" +PRINT(".\Listings\zuolan.m51") RAMSIZE(256) diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/main.c b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/main.c new file mode 100644 index 0000000..eddda65 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/main.c @@ -0,0 +1,229 @@ +#include "main.h" +/* LEDʾ */ +uchar ucLed[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +/* ʾ */ +uchar Seg_Slow_Down; // ܼ +uchar Seg_Buf[8] = {5, 10, 10, 10, 10, 10, 10, 10}; // ʾֵ +uchar Seg_Pos; // ָʾ +uchar Seg_Point[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // ijλǷʾС + +/* ̷ */ +uchar Key_Slow_Down; + +/* */ + +/* ʾ */ +uchar Led_show_mode; // 0 ҵѭ 1 ҵѭ 2 .. 3 .. +uint Flow_interval = 400; // 400-1200 +uchar Seg_show_mode; // 0 ȫ 1 ģʽ 2 ת +uchar Led_level; // 0 1 2 3 +uchar Led_show_index; // ʾܵĵڼԣת12ģʽֱʹã34ģʽ任ʹ + +/* ж */ +bit Flow_flag; // Ƿת +bit Seg_flicker; // ˸ +bit Show_level; // Ƿʾȼ +uchar Pwm_value; +/* EEPROM */ +uchar old_passwd; +uchar passwd = 123; + +/* ʱ */ +uint time_800ms; +uint time_flow; // תʱ +/* ̴ */ +void Key_Proc() +{ + static uchar Key_Val, Key_Down, Key_Up, Key_Old; + if (Key_Slow_Down) + return; + Key_Slow_Down = 1; + + Key_Val = Key_Read(); + Key_Down = Key_Val & (Key_Old ^ Key_Val); + Key_Up = ~Key_Val & (Key_Old ^ Key_Val); + Key_Old = Key_Val; + if (Key_Down == 7) + Flow_flag ^= 1; + if (Key_Down == 6) + Seg_show_mode = (++Seg_show_mode) % 3; + if (Key_Down == 5) + { + if (Seg_show_mode == 1) + { + Led_show_mode = (Led_show_mode + 1) % 4; + } + else if (Seg_show_mode == 2) + { + Flow_interval = (Flow_interval + 100 > 1200) ? 400 : Flow_interval + 100; + } + } + + if (Key_Down == 4) + { + if (Seg_show_mode == 1) + { + Led_show_mode = (Led_show_mode == 0) ? 3 : Led_show_mode - 1; + } + else if (Seg_show_mode == 2) + { + Flow_interval = (Flow_interval - 100 < 400) ? 1200 : Flow_interval - 100; + } + } + if (Seg_show_mode == 0) + if (Key_Old == 4) + { + Show_level = 1; + } + // ûаS4 + else + { + Show_level = 0; + } +} +/* ܴ */ +void Seg_Proc() +{ + uchar i; + if (Seg_Slow_Down) + return; + Seg_Slow_Down = 1; + Led_level = Ad_Read(0x03) / 64; + if (Seg_show_mode == 0) + { + if (Show_level) + { + memset(Seg_Buf, 10, 6); // + Seg_Buf[6] = 11; //- + Seg_Buf[7] = Led_level + 1; // + } + else + memset(Seg_Buf, 10, 8); // ȫ + } + else + { + Seg_Buf[0] = 11; //- + Seg_Buf[1] = Led_show_mode + 1; + Seg_Buf[2] = 11; //- + Seg_Buf[3] = 10; + Seg_Buf[4] = (Flow_interval / 1000 == 0) ? 10 : Flow_interval / 1000 % 10; + Seg_Buf[5] = Flow_interval / 100 % 10; + Seg_Buf[6] = Flow_interval / 10 % 10; + Seg_Buf[7] = Flow_interval % 10; + if (Seg_show_mode == 1) + { + for (i = 0; i < 3; i++) + Seg_Buf[i] = (Seg_flicker) ? Seg_Buf[i] : 10; + } + else if (Seg_show_mode == 2) + { + for (i = 4; i < 8; i++) + Seg_Buf[i] = (Seg_flicker) ? Seg_Buf[i] : 10; + } + } +} + +/* LED */ +void Led_Proc() +{ + uchar i; + if (3 * (Led_level) > Pwm_value + 1) + { + if (Flow_flag) + { + switch (Led_show_mode) + { + case 0: + for (i = 0; i < 8; i++) + ucLed[i] = (i == Led_show_index); + break; + case 1: + for (i = 0; i < 8; i++) + ucLed[i] = (7 - i == Led_show_index); + break; + case 2: + for (i = 0; i < 4; i++) + { + ucLed[i] = (i == Led_show_index); + ucLed[7 - i] = (i == Led_show_index); + } + break; + case 3: + for (i = 0; i < 4; i++) + { + ucLed[3 - i] = (i == Led_show_index); + ucLed[4 + i] = (i == Led_show_index); + } + break; + } + } + else + { + memset(ucLed, 0, 8); + } + } + else + { + memset(ucLed, 0, 8); + } +} + +/* ʱ0жϳʼ */ +void Timer0_Init(void) // 1@12.000MHz +{ + AUXR &= 0x7F; // ʱʱ12Tģʽ + TMOD &= 0xF0; // öʱģʽ + TL0 = 0x18; // öʱʼֵ + TH0 = 0xFC; // öʱʼֵ + TF0 = 0; // TF0־ + TR0 = 1; // ʱ0ʼʱ + ET0 = 1; + EA = 1; +} + +/* ʱ0жϺ */ +void Timer0_ISR(void) interrupt 1 +{ + if (++Key_Slow_Down == 10) + Key_Slow_Down = 0; + if (++Seg_Slow_Down == 200) + Seg_Slow_Down = 0; + if (++Seg_Pos == 8) + Seg_Pos = 0; + if (++Pwm_value == 12) + Pwm_value = 0; + if (++time_800ms == 800) + { + Seg_flicker ^= 1; + time_800ms = 0; + } + if (Flow_flag) + { + if (++time_flow >= Flow_interval) + { + time_flow = 0; + Led_show_index = (++Led_show_index) % 8; + } + } + else + { + time_flow = 0; + Led_show_index = 0; + } + Seg_Disp(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]); + Led_Disp(Seg_Pos, ucLed[Seg_Pos]); +} + +void main() +{ + System_Init(); + Timer0_Init(); + + while (1) + { + Key_Proc(); + Seg_Proc(); + Led_Proc(); + } +} \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/main.h b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/main.h new file mode 100644 index 0000000..2f10ae1 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/main.h @@ -0,0 +1,11 @@ +#include "STC15F2K60S2.H" +#include "Led.h" +#include "Key.h" +#include "Seg.h" +#include "iic.h" +#include "intrins.h" +#include "Init.h" +#include "stdio.h" +#include "string.h" +#define uint unsigned int +#define uchar unsigned char \ No newline at end of file diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/zuolan.uvgui.haze b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/zuolan.uvgui.haze new file mode 100644 index 0000000..6bbd737 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/zuolan.uvgui.haze @@ -0,0 +1,1369 @@ + + + + -5.1 + +
### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 275 + + + 346 + Code Coverage + 562 160 + + + 204 + Performance Analyzer + 722 + + + + + + 1506 + Symbols + + 133 133 133 + + + 1936 + Watch 1 + + 133 133 133 + + + 1937 + Watch 2 + + 133 133 133 + + + 1935 + Call Stack + Locals + + 133 133 133 + + + 2506 + Trace Data + + 75 135 130 95 70 230 200 150 + + + + + + 1 + 1 + 0 + 0 + -1 + + + + + + + 44 + 0 + 1 + + -32000 + -32000 + + + -1 + -1 + + + 9 + 9 + 1543 + 823 + + + + 0 + + 309 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000025443A5C4B65696C5F76355C4335315C496E635C5354435C535443313546324B363053322E48000000000E535443313546324B363053322E4800000000BECEA100FFFFFFFF2C433A5C55736572735C68617A655C4465736B746F705CB5DABEC5BDECCAA1C8FC5C557365725C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000A501000077000000FF05000035020000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 940100004F00000070040000BC000000 + + + 16 + A50100007700000081040000E4000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D010000F4010000 + + + 16 + 220000003900000005010000F0010000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0000000025020000EE050000F4020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000900100007004000011020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000028020000FD050000DB020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 22000000390000005A020000A6000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 97010000660000006D040000A3000000 + + + 16 + 22000000390000005A020000A6000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E3020000660000006D04000087010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000660000008D01000006020000 + + + 16 + 220000003900000005010000F0010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000028020000FD050000DB020000 + + + 16 + 22000000390000005A020000A6000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0300000028020000FD050000DB020000 + + + 16 + 220000003900000005010000F0010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A70100006D040000F8010000 + + + 16 + 2200000039000000B2010000C9010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 940 + 0 + 8192 + 0 + + 16 + 0000000000000000B70300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000F4020000EE05000007030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 612 + 0 + 8192 + 2 + + 16 + 00000000380000006F02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2619 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000BC00000070040000C0000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000A50100007700000081040000E4000000940100004F00000070040000BC0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFDC0200004F000000E0020000A0010000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000F10200007700000081040000C8010000E00200004F00000070040000A00100000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100000D020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000001100000077000000A101000047020000000000004F000000900100000D0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000008C010000700400009001000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000011000000B801000081040000390200000000000090010000700400001102000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF38020000900100003C0200001102000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000000D020000EE0500001102000001000000010000100400000001000000BFFDFFFF6B000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000110000004B020000110600002E0300000000000011020000EE050000F40200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2096 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000C524541445F6F6E6577697265960000000000000005000C524541445F6F6E6577697265094B65795F636F756E740D5365675F446973705F4D6F64650D5365675F536C6F775F446F776E0A4750494F6368616E67650000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 674 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000067A756F6C616E96000000000000000100067A756F6C616E000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2220 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1536 + 864 + + + + + + 1 + 0 + + 100 + 1 + + D:\Keil_v5\C51\Inc\STC\STC15F2K60S2.H + 0 + 1 + 1 + 1 + + 0 + + + .\main.c + 22 + 185 + 194 + 1 + + 0 + + + + +
diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/zuolan.uvopt b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/zuolan.uvopt new file mode 100644 index 0000000..3d1e0f2 --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/zuolan.uvopt @@ -0,0 +1,245 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + zuolan + 0x0 + MCS-51 + + 35000000 + + 0 + 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 + + 0 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 11 + + + + + + + + + + + BIN\VDM51.DLL + + + + 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 + + + + + + + + User + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + Driver + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Led.c + Led.c + 0 + 0 + + + 2 + 3 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Seg.c + Seg.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Key.c + Key.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + 0 + ..\Driver\Init.c + Init.c + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + 0 + ..\Driver\iic.c + iic.c + 0 + 0 + + + +
diff --git a/题目/真题/9 第九届省赛_左岚/第九届省赛/User/zuolan.uvproj b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/zuolan.uvproj new file mode 100644 index 0000000..4f7388c --- /dev/null +++ b/题目/真题/9 第九届省赛_左岚/第九届省赛/User/zuolan.uvproj @@ -0,0 +1,405 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + zuolan + 0x0 + MCS-51 + + + STC15F2K60S2 + STC + IRAM(0-0xFF) XRAM(0-0x6FF) IROM(0-0xEFF8) CLOCK(35000000) MODP2 + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 62472 + STC15F2K60S2.H + + + + + + + + + + + 0 + 0 + + + + STC\ + STC\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + zuolan + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -pDP8051 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 11 + + + + + + + + + + + + + + BIN\VDM51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + + + + + + 0 + + + + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 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 + 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 + 0xeff9 + + + 0 + 0x0 + 0x100 + + + 0 + 0x0 + 0x700 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\Driver + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + User + + + main.c + 1 + .\main.c + + + + + Driver + + + Led.c + 1 + ..\Driver\Led.c + + + Seg.c + 1 + ..\Driver\Seg.c + + + Key.c + 1 + ..\Driver\Key.c + + + Init.c + 1 + ..\Driver\Init.c + + + iic.c + 1 + ..\Driver\iic.c + + + + + + + +
diff --git a/题目/蓝桥杯训练题/蓝桥杯高手训练题.pdf b/题目/蓝桥杯训练题/蓝桥杯高手训练题.pdf new file mode 100644 index 0000000..c207a1b Binary files /dev/null and b/题目/蓝桥杯训练题/蓝桥杯高手训练题.pdf differ