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