标题:
能帮我改一下这个代码吗?就是动画显示的那里
[打印本页]
作者:
Derive
时间:
2024-2-7 09:38
标题:
能帮我改一下这个代码吗?就是动画显示的那里
#include <reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;
#define DOT_MATRIX_PORT P0
#define LINE_SELECT_PORT P2
#define INTERRUPT_PIN P3^2
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
void delay_ms(u16 ms)
{
u16 i, j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
unsigned char heart_pattern[16][16]={0x78,0xFC,0x7E,0x3F,0x7E,0xFC,0x78,0x00,
0x70,0xF8,0x7C,0x3E,0x7C,0xF8,0x70,0x00,
0x60,0xF0,0x78,0x3C,0x78,0xF0,0x60,0x00,
0x40,0xE0,0x70,0x38,0x70,0xE0,0x40,0x00,
0x78,0xFC,0x7E,0x3F,0x7E,0xFC,0x78,0x00};
volatile bit donghua_on = 0;
void display_heart(void);
void init_interrupt(void);
void main(void)
{
init_interrupt();
while(1)
{
if (donghua_on)
{
display_heart();
donghua_on = 0;
delay_ms(1000);
}
}
}
void display_heart(void)
{
int row;
for(row=0; row<16; row++)
{
LINE_SELECT_PORT = ~(1<<row);
DOT_MATRIX_PORT = heart_pattern[row];
delay_us(1000);
}
}
void interrupt isr(void)
{
donghua_on = 1;
EXTI0_IF = 0;
}
void init_interrupt(void)
{
IT0 = 1;
EX0 = 1;
EA = 1;
}
作者:
lkc8210
时间:
2024-2-7 16:01
改啥啊?啥都不说
作者:
cedtek
时间:
2024-2-8 10:19
请明确的表达您的需求、现有问题
作者:
xxxevery
时间:
2024-2-14 00:13
虽然不知道具体问题说的哪里,但下面这段程序肯定是有问题的
void display_heart(void)
{
int row;
for(row=0; row<16; row++)
{
LINE_SELECT_PORT = ~(1<<row);
DOT_MATRIX_PORT = heart_pattern[row];
delay_us(1000);
}
}
LINE_SELECT_PORT 即P2是8位的,移16位肯定有问题
DOT_MATRIX_PORT = heart_pattern[row];这句里heart_pattern是二维数组,写成一维数组形式肯定也有问题
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1