witam
mam układ oparty o zestaw AVT-541 borykam się z wyświetleniem czegokolwiek na tym wyświetlaczu moje próby opieram na oprogramowaniu bascom na mikro kontrolerze at89c2051. Udało mi się włączyć test wyświetlacza po napisaniu komendy :
kod:
\--------------------------------------------------
' test MAX 6953
'At89c2051
'--------------------------------------------------
Config Sda = P3.5
Config Scl = P3.7
I2cstart
I2cwbyte &HA0
I2cwbyte &H07
I2cwbyte &H07
I2cstop
'--------------------------------------------------
powoduje to zapalenie wszystkich punktów wyświetlacza,próbowałem w podobny sposób wysłać jakąś komendę w celu wysłania jakiegoś znaku niestety bez powodzenia.
Teraz mam pytanie do szanownych forumowiczów czy ktoś próbował sterować tym wyświetlaczem z poziomu bascoma i może mi udzielić porady najlepiej jakiegoś działającego przykładu (na przykład wyświetlenie jakieś cyfry)
byłbym wdzięczny za jakieś sugestie dziękuję.
udało się stworzyć poprawiona wersje tego programu.
Program powoduje naprzemienne włączanie i wyłączanie testu.
Jednak w dalszym ciągu brak pomysłów aby wyświetlić na im choćby czterech jedynek.
kod:
'-------------------
'test on/off MAX6953
; At89c2051
'-------------------
Config Sda = P3.5 'konfiguracja magistrali
Config Scl = P3.7 'konfiguracja magistrali
P3.0 = 0 'punkt kontrolny na led
P3.1 = 255 'punkt kontrolny na led
Wait 5 'czekaj 5 sekund
I2cstart 'start magistrali
I2cwbyte &HA0 'adres układu
I2cwbyte &H07 'adres rejestru
I2cwbyte &H01 'załącz test
I2cstop 'stop magistrali
P3.0 = 255 'punkt kontrolny na led
P3.1 = 0 'punkt kontrolny na led
Wait 5 'czekaj 5 sekund
I2cstart 'ponowny start magistrali
I2cwbyte &HA0 'wyślij adres układu
I2cwbyte &H07 'wyślij komendę testu
I2cwbyte &H00 '0 logiczne test off
I2cstop 'zatrzymaj magistrale
P3.1 = 255 'punkt kontrolny na led
Wait 5 'czekaj 5 sekund
sterowanie MAX6953 w środowisku BASCOM
-
wojtan1974
- -
- Posty: 4
- Rejestracja: 07 lis 2010, 17:29
- Lokalizacja: poznan
- Kontakt:
sterowanie MAX6953 w środowisku BASCOM
Ostatnio zmieniony 08 lis 2010, 21:54 przez wojtan1974, łącznie zmieniany 4 razy.
-
keruseykaryu
Wpisz tak
\--------------------------------------------------
' test MAX 6953
'At89c2051
'--------------------------------------------------
Config Sda = P3.5
Config Scl = P3.7
I2cstart
I2cwbyte &HA0 'adres układu
I2cwbyte &H60 'rejestry wspólne
I2cwbyte &H41 'kod A
I2cwbyte &H41 'kod A
I2cwbyte &H41 'kod A
I2cwbyte &H41 'kod A
I2cstop
'--------------------------------------------------
Co wyszło?
\--------------------------------------------------
' test MAX 6953
'At89c2051
'--------------------------------------------------
Config Sda = P3.5
Config Scl = P3.7
I2cstart
I2cwbyte &HA0 'adres układu
I2cwbyte &H60 'rejestry wspólne
I2cwbyte &H41 'kod A
I2cwbyte &H41 'kod A
I2cwbyte &H41 'kod A
I2cwbyte &H41 'kod A
I2cstop
'--------------------------------------------------
Co wyszło?
-
wojtan1974
- -
- Posty: 4
- Rejestracja: 07 lis 2010, 17:29
- Lokalizacja: poznan
- Kontakt:
niestety brak reakcjikeruseykaryu pisze:Wpisz tak
\--------------------------------------------------
' test MAX 6953
'At89c2051
'--------------------------------------------------
Config Sda = P3.5
Config Scl = P3.7
I2cstart
I2cwbyte &HA0 'adres układu
I2cwbyte &H60 'rejestry wspólne
I2cwbyte &H41 'kod A
I2cwbyte &H41 'kod A
I2cwbyte &H41 'kod A
I2cwbyte &H41 'kod A
I2cstop
'--------------------------------------------------
Co wyszło?
Nota katalogowa. musisz sobie ja przeczytać, bo to skomplikowany sterownik, nie opanujesz go metoda prób i błedów.
DOWN
No przecież ci napisałem, weź sobie do rąk notę katalogową i ją przeanalizuj, a nie licz na gotowca, bo ci go nie dam, nie mam ani układu do testu w domu, ani specjalnie czasu analizować jego struktury.
No przecież ci napisałem, weź sobie do rąk notę katalogową i ją przeanalizuj, a nie licz na gotowca, bo ci go nie dam, nie mam ani układu do testu w domu, ani specjalnie czasu analizować jego struktury.
Ostatnio zmieniony 08 lis 2010, 8:45 przez kayron, łącznie zmieniany 1 raz.
-
wojtan1974
- -
- Posty: 4
- Rejestracja: 07 lis 2010, 17:29
- Lokalizacja: poznan
- Kontakt:
Kod: Zaznacz cały
Pomijając inne rejestry (np sterowania jasnością)
niezbędne jest włączenie wyświetlania
Należy tego dokonać przez wpisanie danych do rejestru konfiguracji.
Czyli pod adres 04H wysłać bajt skonfigurowany wg poniższej ściągi
Configuration Register (adres 04H)
wartość początkowa po włączeniu zsilania 0x0000x0 (x=stan bitów nieistotny)
MSB LSB
0 0 0 0 0 0 0 0
| | | | | | | |-0 układ wyłączony /_ najważniejsze!
| | | | | | | |-1 układ aktywny \
| | | | | | |----0 bez znaczenia
| | | | | |-------0 wolne miganie
| | | | | |-------1 szybkie miganie
| | | | |----------0 miganie zablokowane
| | | | |----------1 miganie odblokowane
| | | |-------------0 miganie bez synchronizacji
| | | |-------------1 miganie z synchronizacją od I2C
| | |----------------0 bez czyszczenia danych
| | |----------------1 globalne czyszczenie danych ACK I2C
| |-------------------0 bez znaczenia
|--ten bit wskazuje która płaszczyzna jest aktualnie wyświetlana w trybie migania
(ustawiany jest sprzętowo przez układ, my możemy go jedynie odczytywać )
0 gdy jest w fazie wyświetlania danych z płaczyzny P1
1 gdy jest w fazie wyświetlania danych z płaczyzny P0
Jeżeli dane są identyczne w obu płaszczyznach to migania nie zauważymy
dane do wyświetlenia wpisujemy do rejestrów pod adresami:
020H do 023H dla płaszczyzny P0
040H do 043H dla płaszczyzny P1
060H do 063H dla obu płaszczyzn jednocześnie (najlepiej tu, jeżeli nie będziemy używać migania)
Może moje nazewnictwo nie jest dobre, ale mam nadzieję, że coś rozjaśni
Tak więc w Twoim pierwszym poprawionym kodzie wystarczy
zamiast adresować rejestr testu (07H) zaadresować rejestr konfiguracji (04H)
w następnej linii wysyłane jest tam 01H więc nic nie trzeba zmieniać
po tym wpsać dane do wyświetlenia (cyfra 1 ma kod 031H)
i powinno być dobrze.
Tylko jasność bedzie niska, ponieważ po włączeniu zasilania jest na minimum
(do ustawienia rejestrem 01H dla wyświetlaczy nr 0i1 , rejestrem 02H dla wyświetlaczy 2i3)
-
wojtan1974
- -
- Posty: 4
- Rejestracja: 07 lis 2010, 17:29
- Lokalizacja: poznan
- Kontakt:
dziękuje spróbuje to w jak najkrótszym czasie sprawdzić podejrzewam ze informacje zawarte w tym temacie przydadzą się nie tylko mi ale szerszemu gronugomarko pisze:Miganie polega na tym, że cyklicznie na przemian wyświetlane są dane z płaszczyzny P0 i P1Kod: Zaznacz cały
Pomijając inne rejestry (np sterowania jasnością) niezbędne jest włączenie wyświetlania Należy tego dokonać przez wpisanie danych do rejestru konfiguracji. Czyli pod adres 04H wysłać bajt skonfigurowany wg poniższej ściągi Configuration Register (adres 04H) wartość początkowa po włączeniu zsilania 0x0000x0 (x=stan bitów nieistotny) MSB LSB 0 0 0 0 0 0 0 0 | | | | | | | |-0 układ wyłączony /_ najważniejsze! | | | | | | | |-1 układ aktywny \ | | | | | | |----0 bez znaczenia | | | | | |-------0 wolne miganie | | | | | |-------1 szybkie miganie | | | | |----------0 miganie zablokowane | | | | |----------1 miganie odblokowane | | | |-------------0 miganie bez synchronizacji | | | |-------------1 miganie z synchronizacją od I2C | | |----------------0 bez czyszczenia danych | | |----------------1 globalne czyszczenie danych ACK I2C | |-------------------0 bez znaczenia |--ten bit wskazuje która płaszczyzna jest aktualnie wyświetlana w trybie migania (ustawiany jest sprzętowo przez układ, my możemy go jedynie odczytywać ) 0 gdy jest w fazie wyświetlania danych z płaczyzny P1 1 gdy jest w fazie wyświetlania danych z płaczyzny P0
Jeżeli dane są identyczne w obu płaszczyznach to migania nie zauważymy
dane do wyświetlenia wpisujemy do rejestrów pod adresami:
020H do 023H dla płaszczyzny P0
040H do 043H dla płaszczyzny P1
060H do 063H dla obu płaszczyzn jednocześnie (najlepiej tu, jeżeli nie będziemy używać migania)
Może moje nazewnictwo nie jest dobre, ale mam nadzieję, że coś rozjaśni
Tak więc w Twoim pierwszym poprawionym kodzie wystarczy
zamiast adresować rejestr testu (07H) zaadresować rejestr konfiguracji (04H)
w następnej linii wysyłane jest tam 01H więc nic nie trzeba zmieniać
po tym wpsać dane do wyświetlenia (cyfra 1 ma kod 031H)
i powinno być dobrze.
Tylko jasność bedzie niska, ponieważ po włączeniu zasilania jest na minimum
(do ustawienia rejestrem 01H dla wyświetlaczy nr 0i1 , rejestrem 02H dla wyświetlaczy 2i3)
[ Dodano: 2010-11-09, 22:39 ]
$sim
'-------------------
'test on/off MAX6953
' ; At89c2051
'-------------------
Config Sda = P3.5 'konfiguracja magistrali
Config Scl = P3.7 'konfiguracja magistrali
P3.0 = 0 'punkt kontrolny na led
P3.1 = 255 'punkt kontrolny na led
Wait 5 'czekaj 5 sekund
I2cstart 'start magistrali
I2cwbyte &HA0 'adres układu
I2cwbyte &H04 'adres rejestru inicjalizacji
I2cwbyte &H01 'inicjalizacja ON
I2cstop 'stop magistrali
I2cstart 'start magistrali
I2cwbyte &HA0 'adres układu
I2cwbyte &H01 'intensywność znaku 10
I2cwbyte &HFF 'ustaw maksymalna
I2cstop 'stop magistrali
I2cstart 'start magistrali
I2cwbyte &HA0 'adres układu
I2cwbyte &H02 'intensywność znaku 32
I2cwbyte &HFF 'ustaw maksymalna
I2cstop 'stop magistrali
I2cstart 'start magistrali
I2cwbyte &HA0 'adres układu
I2cwbyte &H20 'znak 0 bank P0
I2cwbyte &H50 'dana (HEX literka P)
I2cstop 'stop magistrali
P3.0 = 255 'punkt kontrolny na led
P3.1 = 0 'punkt kontrolny na led
Wait 5 'czekaj 5 sekund
---------------------------------------------------------------------------
poszło tak moje niepowodzenie tkwiło w tym ,że po wysłaniu komendy inicjalizacji przyznaje się wiedziałem o niej trzeba było zakończyć transmisje po czym ponownie ja wznowić wysłać adres układu i komendę danej a następnie dana.Po wykonaniu tego ukazała się piękna literka P na pierwszym wyświetlaczu.Ja poszedłem dalej i ustawiłem maksymalna jasność wyświetlacza.Myślę,że nie tylko mi się to przydało.Teraz kolej na własne definicje znaków ,poinformuje o postępach w tym temacie i mam nadzieje,ze jak najmniej prosić będę o poradę.
PS serdeczne podziękowania forumowiczowi GOMARKO który rozjaśnił mi trochę w głowie