archieve: homework7 test4

This commit is contained in:
2025-05-25 01:32:57 +08:00
parent 1cda67295c
commit a3cf2cbc8e
3 changed files with 91 additions and 4 deletions
+2 -1
View File
@@ -20,7 +20,8 @@
"Debug": {
"excludeList": [
"src/test1.c",
"src/test2.c"
"src/test2.c",
"src/test3.c"
],
"toolchain": "Keil_C51",
"compileConfig": {
+2 -3
View File
@@ -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
};
+87
View File
@@ -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();
}