我想输出字符串" LED GAME"如图所示。但在Dot矩阵中,只有16 + 16 = 32个引脚。有没有办法从avr到dotmatrix打印字符串?
答案 0 :(得分:3)
大多数LED矩阵都是内部构建的,如下例所示:
对于16x16 LED矩阵,因此行有16个引脚,列有16个引脚。要了解如何构建特定矩阵,您必须找到其数据表。
要在显示屏上写入任何内容,您需要将第一行设置为ON,将所有其他行设置为OFF并激活所需的cols。延迟之后,您将第一行设置为OFF,将第二行设置为ON并激活要在第二行中查看的cols。您将遍历所有这样的行。由于延迟时间很短,你的眼睛不够快,以至于大部分时间都没有LED关闭。
我建议在微控制器上使用定时器中断,并在中断例程中遍历行。通过这种方式,您可以轻松地将微控制器用于其他事情,而无需过多担心时序问题。
答案 1 :(得分:0)
标签对面位置上最左边的点阵针脚#20; 2088BH-B"是针脚1。
您可以从以下两张图片中获得完整的想法。
希望这会对你有所帮助。您还可以尝试以下代码,这些代码是为了在点阵中显示9而编写的(编译器:micro-C)
void main()
{
DDRB = 0b11111111;
DDRC = 0b11111111;
while(1)
{
PORTB=0b00000000; // 1
PORTC=0b10000000;
Delay_us(5);
PORTB=0b00000000; //2
PORTC=0b01000000;
Delay_us(5);
PORTB=0b00000000; //3
PORTC=0b00100000;
Delay_us(5);
PORTB=0b00000000; //4
PORTC=0b00010000;
Delay_us(5);
PORTB=0b10011110; // 5
PORTC=0b00001000;
Delay_us(5);
PORTB=0b10010010; //6
PORTC=0b00000100;
Delay_us(5);
PORTB=0b10010010; //7
PORTC=0b00000010;
Delay_us(5);
PORTB=0b11111110; //8
PORTC=0b00000001;
Delay_us(5);
}
}