hoe een string in 16 * 16 Dot Matrix van AVR af te drukken

Ik wil de string "LED GAME" uitvoeren zoals aangegeven in de afbeelding. Maar in Dot-matrix zijn er slechts 16 + 16 = 32 pinnen. is er een manier om een ​​string van avr naar dotmatrix te printen?

enter image description here

0
U zou een rasterscan moeten doen - doorloop alle rijen continu, waarbij u de relevante kolombits voor elke rij inschakelt. Zolang je dit snel genoeg doet, ziet het oog het als een continu display, net als en ouderwetse CRT.
toegevoegd de auteur Paul R, de bron
U zou een rasterscan moeten doen - doorloop alle rijen continu, waarbij u de relevante kolombits voor elke rij inschakelt. Zolang je dit snel genoeg doet, ziet het oog het als een continu display, net als en ouderwetse CRT.
toegevoegd de auteur Paul R, de bron
U zou een rasterscan moeten doen - doorloop alle rijen continu, waarbij u de relevante kolombits voor elke rij inschakelt. Zolang je dit snel genoeg doet, ziet het oog het als een continu display, net als en ouderwetse CRT.
toegevoegd de auteur Paul R, de bron
Overweeg het gebruik van 4 8x8 LED-matrixdisplays en deze te sturen met iets als het MAX7219 . Er is genoeg code om deze dingen met AVR's te besturen en hoe je ze kunt aansluiten. Eenvoudige multiplicatie met 'rij tegelijk' ziet er waarschijnlijk niet helder genoeg uit met een 1/16 inschakelduur.
toegevoegd de auteur Brett Hale, de bron
Overweeg het gebruik van 4 8x8 LED-matrixdisplays en deze te sturen met iets als het MAX7219 . Er is genoeg code om deze dingen met AVR's te besturen en hoe je ze kunt aansluiten. Eenvoudige multiplicatie met 'rij tegelijk' ziet er waarschijnlijk niet helder genoeg uit met een 1/16 inschakelduur.
toegevoegd de auteur Brett Hale, de bron
Overweeg het gebruik van 4 8x8 LED-matrixdisplays en deze te sturen met iets als het MAX7219 . Er is genoeg code om deze dingen met AVR's te besturen en hoe je ze kunt aansluiten. Eenvoudige multiplicatie met 'rij tegelijk' ziet er waarschijnlijk niet helder genoeg uit met een 1/16 inschakelduur.
toegevoegd de auteur Brett Hale, de bron
Je kunt ook 16x16 LED-matrixdisplays met ingebouwde besturingshardware kopen, maar ik heb er geen ervaring mee.
toegevoegd de auteur Brett Hale, de bron
Je kunt ook 16x16 LED-matrixdisplays met ingebouwde besturingshardware kopen, maar ik heb er geen ervaring mee.
toegevoegd de auteur Brett Hale, de bron
Je kunt ook 16x16 LED-matrixdisplays met ingebouwde besturingshardware kopen, maar ik heb er geen ervaring mee.
toegevoegd de auteur Brett Hale, de bron

6 antwoord

De meeste LED-matrixen zijn hier intern zoals dit voorbeeld opgebouwd:

LED matrix

Voor een 16x16 LED-matrix heeft u dus 16 pinnen voor de rijen en 16 pinnen voor de kolommen. Om te zien hoe uw specifieke matrix is ​​opgebouwd, moet u de datasheet vinden.

Om iets op het display te schrijven, stelt u de eerste rij in op AAN, alle andere op UIT en activeert u de cols die u nodig hebt. Na een vertraging zet je de eerste rij op UIT, de tweede rij op AAN en activeer je de kolommen die je in de tweede rij wilt zien. Je zult door alle rijen op deze manier herhalen. Omdat de vertraging vrij kort zal zijn, zijn je ogen niet snel genoeg om te zien dat de LED's meestal uit zijn.

Ik zou willen voorstellen om een ​​timerinterrupt op je microcontroller te gebruiken en door de rijen in de interruptieroutine te herhalen. Op die manier kunt u de microcontroller gemakkelijk voor andere dingen gebruiken zonder u zorgen te maken over timingproblemen.

3
toegevoegd

De meeste LED-matrixen zijn hier intern zoals dit voorbeeld opgebouwd:

LED matrix

Voor een 16x16 LED-matrix heeft u dus 16 pinnen voor de rijen en 16 pinnen voor de kolommen. Om te zien hoe uw specifieke matrix is ​​opgebouwd, moet u de datasheet vinden.

Om iets op het display te schrijven, stelt u de eerste rij in op AAN, alle andere op UIT en activeert u de cols die u nodig hebt. Na een vertraging zet je de eerste rij op UIT, de tweede rij op AAN en activeer je de kolommen die je in de tweede rij wilt zien. Je zult door alle rijen op deze manier herhalen. Omdat de vertraging vrij kort zal zijn, zijn je ogen niet snel genoeg om te zien dat de LED's meestal uit zijn.

Ik zou willen voorstellen om een ​​timerinterrupt op je microcontroller te gebruiken en door de rijen in de interruptieroutine te herhalen. Op die manier kunt u de microcontroller gemakkelijk voor andere dingen gebruiken zonder u zorgen te maken over timingproblemen.

3
toegevoegd

De meeste LED-matrixen zijn hier intern zoals dit voorbeeld opgebouwd:

LED matrix

Voor een 16x16 LED-matrix heeft u dus 16 pinnen voor de rijen en 16 pinnen voor de kolommen. Om te zien hoe uw specifieke matrix is ​​opgebouwd, moet u de datasheet vinden.

Om iets op het display te schrijven, stelt u de eerste rij in op AAN, alle andere op UIT en activeert u de cols die u nodig hebt. Na een vertraging zet je de eerste rij op UIT, de tweede rij op AAN en activeer je de kolommen die je in de tweede rij wilt zien. Je zult door alle rijen op deze manier herhalen. Omdat de vertraging vrij kort zal zijn, zijn je ogen niet snel genoeg om te zien dat de LED's meestal uit zijn.

Ik zou willen voorstellen om een ​​timerinterrupt op je microcontroller te gebruiken en door de rijen in de interruptieroutine te herhalen. Op die manier kunt u de microcontroller gemakkelijk voor andere dingen gebruiken zonder u zorgen te maken over timingproblemen.

3
toegevoegd

Hoe kun je Pin 1 Of Dot-matrix identificeren?

De meest linkse pin van de puntmatrix op de tegenoverliggende plaats van het label "2088BH-B" is pin 1.

Je kunt een volledig idee krijgen van de volgende twee foto's. voer hier de beschrijving van de afbeelding in

enter image description here

Ik hoop dat dit je veel zal helpen. je kunt ook de volgende code proberen die is geschreven voor het tonen van 9 in puntmatrix (compiler: 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);

     }
}
0
toegevoegd

Hoe kun je Pin 1 Of Dot-matrix identificeren?

De meest linkse pin van de puntmatrix op de tegenoverliggende plaats van het label "2088BH-B" is pin 1.

Je kunt een volledig idee krijgen van de volgende twee foto's. voer hier de beschrijving van de afbeelding in

enter image description here

Ik hoop dat dit je veel zal helpen. je kunt ook de volgende code proberen die is geschreven voor het tonen van 9 in puntmatrix (compiler: 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);

     }
}
0
toegevoegd

Hoe kun je Pin 1 Of Dot-matrix identificeren?

De meest linkse pin van de puntmatrix op de tegenoverliggende plaats van het label "2088BH-B" is pin 1.

Je kunt een volledig idee krijgen van de volgende twee foto's. voer hier de beschrijving van de afbeelding in

enter image description here

Ik hoop dat dit je veel zal helpen. je kunt ook de volgende code proberen die is geschreven voor het tonen van 9 in puntmatrix (compiler: 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);

     }
}
0
toegevoegd