Mam takie pytanie teoretyczne.
Zbudowałem układ na M8 którego zadaniem jest wyświetlanie temperatury w dwóch punktach.
Jako wyświetlacze zastosowałem dwa zestawy wyświetlaczy siedmiosegmentowych (po cztery wyświetlacze na kanał)
Od strony minusa elektrody sterowane są bezpośrednio z portu mikrokontrolera, natomiast dodatnie eketrody (wspólne dla 7 segmentów jednego wyświetlacza) steruję cyklicznie tranzystorem BC 557
Tym samym mam do wysterowania osiem wyświetlaczy LCD
W programie natomiast steruję pracą wyświetlaczy przy pomocy Timera
i wywołanie
Dodatkowo, żeby uniknąć migania wyświetlacza, umieściłem kod odczytu DS18B20 na końcu przemiatania wyświetlaczami (ponieważ wyłączam przerwania na czas odczytu ) i dla tego musiałem dodać trzy (w zależności od szybkości wywołania przerwań cztery i więcej) niewidoczne wyświetlacze, żeby wyłączenie przerwań na czas odczytu nie powodowało zatrzymania a tym samym zmian natężenia świecenia wyświetlaczy użytych w projekcie.
Wszystko gra i zachowuje się dobrze, tylko że ze wzrostem ilości wyświetlaczy zmniejsza się jasność ich świecenia.
Próbowałem zmieniać w szerokim zakresie wartość przepełnienia licznika przerwań, przy wartości około 50 taktowanie wewnętrzne 8MHz świecą najjaśniej jednak dalej za ciemno
czy koledzy mogliby mi podpowiedzieć jaki jest na to sposób, czy na przykład zastosowanie zamiast BC557 - darlingtona BC516 zwiększyłoby jasność wyświetlania?
Jaka jest granica ilości wyświetlaczy sterowanych przez jeden mikrokontroler w jednym cyklu przemiatania?
Czy może jest na to jakiś inny sposób ?
Dla zobrazowania przedstawiam wam płytkę, jako bardziej czytelniejszą niż schemat, który na moje potrzeby bardzo rozkawałkowałem.
Zbudowałem układ na M8 którego zadaniem jest wyświetlanie temperatury w dwóch punktach.
Jako wyświetlacze zastosowałem dwa zestawy wyświetlaczy siedmiosegmentowych (po cztery wyświetlacze na kanał)
Od strony minusa elektrody sterowane są bezpośrednio z portu mikrokontrolera, natomiast dodatnie eketrody (wspólne dla 7 segmentów jednego wyświetlacza) steruję cyklicznie tranzystorem BC 557
Tym samym mam do wysterowania osiem wyświetlaczy LCD
W programie natomiast steruję pracą wyświetlaczy przy pomocy Timera
Config Timer1 = Timer , Prescale = 256
On Timer1 Wyswietlacz
Enable Interrupts
Enable Timer1
Enable Timer0
Load Timer1 , 65
i wywołanie
Wyswietlacz:
Load Timer1 , 60
Set Portb.2
Set Portb.3
Set Portb.4
Set Portb.5
Set Portc.0
Set Portc.1
Set Portc.2
Set Portc.3
Select Case Nr_wysw
Case 0:
Portd = Lookup(cyfra1 , Segmenty )
Reset Portb.3
Case 1:
Portd = Lookup(cyfra2 , Segmenty )
Reset Portb.2
Case 2:
Portd = Lookup(cyfra3 , Segmenty )
Reset Portb.4
If Kr = 1 Then Reset Portd.0 ' kropka
Case 3:
Portd = Lookup(cyfra4 , Segmenty )
Reset Portb.5
Case 4:
Portd = Lookup(cyfra5 , Segmenty )
Reset Portc.0
Case 5:
Portd = Lookup(cyfra6 , Segmenty )
Reset Portc.1
Case 6:
Portd = Lookup(cyfra7 , Segmenty )
Reset Portc.3
If Kr2 = 1 Then Reset Portd.0 ' kropka
Case 7:
Portd = Lookup(cyfra8 , Segmenty )
Reset Portc.2
End Select
Return
Segmenty:
Data &B00010001 , &B10111101 , &B10000011 , &B10001001 , &B00101101,
Data &B01001001 , &B01000001 , &B00011101 , &B00000001 , &B00001001,
Data &B11101111 , &B00100101 , &B01010011 , &B11111111 , &B00000101,
Data &B00110001 , &B11100001 , &B10100001 , &B01100011 , &B01110011,
Data &B01000011Dodatkowo, żeby uniknąć migania wyświetlacza, umieściłem kod odczytu DS18B20 na końcu przemiatania wyświetlaczami (ponieważ wyłączam przerwania na czas odczytu ) i dla tego musiałem dodać trzy (w zależności od szybkości wywołania przerwań cztery i więcej) niewidoczne wyświetlacze, żeby wyłączenie przerwań na czas odczytu nie powodowało zatrzymania a tym samym zmian natężenia świecenia wyświetlaczy użytych w projekcie.
Wszystko gra i zachowuje się dobrze, tylko że ze wzrostem ilości wyświetlaczy zmniejsza się jasność ich świecenia.
Próbowałem zmieniać w szerokim zakresie wartość przepełnienia licznika przerwań, przy wartości około 50 taktowanie wewnętrzne 8MHz świecą najjaśniej jednak dalej za ciemno
czy koledzy mogliby mi podpowiedzieć jaki jest na to sposób, czy na przykład zastosowanie zamiast BC557 - darlingtona BC516 zwiększyłoby jasność wyświetlania?
Jaka jest granica ilości wyświetlaczy sterowanych przez jeden mikrokontroler w jednym cyklu przemiatania?
Czy może jest na to jakiś inny sposób ?
Dla zobrazowania przedstawiam wam płytkę, jako bardziej czytelniejszą niż schemat, który na moje potrzeby bardzo rozkawałkowałem.