ELIASZ GISZTER
PWSZ GNIEZNO
MIKROPROCESORY
TEMAT: Wyświetlacz 7 segmentowy.
Zad 1.Uruchomić przedstawiony powyżej program obsługi wyświetlacza 7-segmentowego. 7SEG ZAD1.asm
Zad 2. Zmodyfikować program z punktu 1 tak, aby na wyświetlaczu pojawił się napis składający się z 6 różnych znaków (wyświetlanie sekwencyjne). 7SEG ZAD2.asm
Niech czas świecenia jednego wskaźnika wynosi:
a) 1 ms,
b) 1 s.
W tym programie należało po kolei włączać poszczególne wskaźniki wyświetlacza tak, aby ludzkie oko nie zauważyło przełączenia i uznało, że dana sekwencja cyfr jest wyświetlona statycznie. Przy czasie świecenia 1s wskaźniki zapalały się po kolei w taki sposób, że było to bardzo widoczne. Przy czasie świecenia o 1000 razy krótszym już przełączania nie było widać. Do programu użyliśmy jedynego rejestru 16 bitowego, jaki 8051 posiada (rejestr DPTR).
Na początku programu definiujemy nasze zmienne pomocnicze przy pomocy EQU, są to zdefiniowane znaki oraz załączane poszczególne wskaźniki. Są też zdefiniowane adresy buforów: wskaźnika i danych wskaźnika. Następnie piszemy program dla pierwszej cyfry i dopiero załączamy nasz wyświetlacz na 1ms, po czym wyłączamy, aby nasz program wrzucił do bufora inna daną oraz włączył inny wskaźnik i dopiero teraz ponownie włączamy wyświetlacz. Robimy to, dlatego że gdybyśmy go nie wyłączali i załączali to na wyświetlaczu chwilowo by były pokazywane dane z poprzedzającego wskaźnika. Widać to przy pracy krokowej uP.
Zad 3. Zmodyfikuj program z punktu 2 tak, aby bufory wyświetlacza 7-segmentowego adresowane były przy pomocy rejestrów R0 i R1. 7SEG ZAD3.asm
Jak było napisane w dsm51 tylko końcówka adresu się zmienia, więc modyfikacja była bardzo prosta. Przy adresacji rejestrami R0 i R1 młodsza część adresu pobierana jest z rejestrów a starsza z portu P2. W 8051 domyślnie na wszystkie porty uP wysyłane są jedynki, czyli na porty 8 bitowe by było to 0FFh jak widzimy adresy buforów w systemie mają początki FF wiec to załatwia nam starszą część adresu. Dla uproszczenia użyłem obu tych rejestrów jeden dla bufora wyboru wskaźnika (R0), drugi dla adresu bufora danych(R1).