From a3cf2cbc8e077d562c096eaf4fa01333701c1dce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=A1=E5=9D=82=E3=82=B9=E3=83=90=E3=83=AB?= Date: Sun, 25 May 2025 01:32:57 +0800 Subject: [PATCH] archieve: homework7 test4 --- homework7/.eide/eide.json | 3 +- homework7/src/test3.c | 5 +-- homework7/src/test4.c | 87 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+), 4 deletions(-) create mode 100644 homework7/src/test4.c diff --git a/homework7/.eide/eide.json b/homework7/.eide/eide.json index a828956..d853fa5 100644 --- a/homework7/.eide/eide.json +++ b/homework7/.eide/eide.json @@ -20,7 +20,8 @@ "Debug": { "excludeList": [ "src/test1.c", - "src/test2.c" + "src/test2.c", + "src/test3.c" ], "toolchain": "Keil_C51", "compileConfig": { diff --git a/homework7/src/test3.c b/homework7/src/test3.c index f9567d5..31bbe10 100644 --- a/homework7/src/test3.c +++ b/homework7/src/test3.c @@ -11,11 +11,10 @@ #include "homework7.h" unsigned char code display[] = { - // it is fucking reverse 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // space - 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, // U - 0x00, 0x66, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, // ❤ 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, // I + 0x00, 0x66, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, // ❤ + 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, // U 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // space }; diff --git a/homework7/src/test4.c b/homework7/src/test4.c new file mode 100644 index 0000000..dd9a41c --- /dev/null +++ b/homework7/src/test4.c @@ -0,0 +1,87 @@ +/* + * @name: test4.c + * @author: msksbr + * @date: 2025-05-25 + * @description: a test for homework7's homework tests + * @version: 1.0 + * homework zh_CN: 点阵显示一个 I ❤ U 的向右移动动画 + * homework EN: display a I ❤ U moving right animation on the led matrix + */ + +#include "homework7.h" + +unsigned char code frames[30][8] = { + {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F}, + {0xFF, 0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F}, + {0xFF, 0x1F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x1F}, + {0xFF, 0x0F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x0F}, + {0xFF, 0x87, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0x87}, + {0xFF, 0xC3, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xC3}, + {0xFF, 0xE1, 0x73, 0x73, 0x73, 0xF3, 0xF3, 0xE1}, + {0xFF, 0x70, 0x39, 0x39, 0x39, 0x79, 0xF9, 0xF0}, + {0xFF, 0x38, 0x1C, 0x1C, 0x1C, 0x3C, 0x7C, 0xF8}, + {0xFF, 0x9C, 0x0E, 0x0E, 0x0E, 0x1E, 0x3E, 0x7C}, + {0xFF, 0xCE, 0x07, 0x07, 0x07, 0x0F, 0x1F, 0x3E}, + {0xFF, 0x67, 0x03, 0x03, 0x03, 0x07, 0x0F, 0x9F}, + {0xFF, 0x33, 0x01, 0x01, 0x01, 0x03, 0x87, 0xCF}, + {0xFF, 0x99, 0x00, 0x00, 0x00, 0x81, 0xC3, 0xE7}, + {0xFF, 0xCC, 0x80, 0x80, 0x80, 0xC0, 0xE1, 0xF3}, + {0xFF, 0xE6, 0xC0, 0xC0, 0xC0, 0xE0, 0xF0, 0xF9}, + {0xFF, 0x73, 0x60, 0x60, 0x60, 0x70, 0x78, 0xFC}, + {0xFF, 0x39, 0x30, 0x30, 0x30, 0x38, 0x3C, 0x7E}, + {0xFF, 0x9C, 0x98, 0x98, 0x98, 0x9C, 0x1E, 0x3F}, + {0xFF, 0xCE, 0xCC, 0xCC, 0xCC, 0xCE, 0x0F, 0x1F}, + {0xFF, 0x67, 0x66, 0x66, 0x66, 0x67, 0x07, 0x0F}, + {0xFF, 0x33, 0x33, 0x33, 0x33, 0x33, 0x03, 0x87}, + {0xFF, 0x99, 0x99, 0x99, 0x99, 0x99, 0x81, 0xC3}, + {0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xC0, 0xE1}, + {0xFF, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE0, 0xF0}, + {0xFF, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF0, 0xF8}, + {0xFF, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF8, 0xFC}, + {0xFF, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFE}, + {0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF}}; + +void test4() +{ + EA = 1; + ENLED = 0; + ADDR3 = 0; + TMOD = 0x01; + TH0 = 0xFC; + TL0 = 0x67; + ET0 = 1; + TR0 = 1; + while (1); +} + +void InterruptTimer0() interrupt 1 +{ + static unsigned char i = 0; + static unsigned char tmr = 0; + static unsigned char index = 29; + + TH0 = 0xFC; + TL0 = 0x67; + P2 = 0xFF; + switch_138(i); + i++; + if (i >= 8) { + i = 0; + } + P2 = frames[index][i]; + tmr++; + if (tmr >= 250) { + tmr = 0; + if (index == 0) { + index = 30; + } else { + index--; + } + } +} + +void main() +{ + test4(); +} \ No newline at end of file