Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

Podobne dokumenty
Ćwiczenie 7 Matryca RGB

Celem ćwiczenia jest zapoznanie z obsługą klawiatury sekwencyjnej i matrycowej w systemie DSM-51.

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Przerwania w architekturze mikrokontrolera X51

Ćwiczenie 1 Wędrujące światełko

Instytut Teleinformatyki

SML3 październik

Wydział Mechaniczny. Instrukcja do zajęć laboratoryjnych. Numer ćwiczenia: 4. Laboratorium z przedmiotu: Technika cyfrowa i mikroprocesorowa

architektura komputerów w 1 1

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

LABORATORIUM UKŁADY WY Ś WIETLANIA INFORMACJI Z WY Ś WIETLACZAMI 7-SEGMENTOWYMI LED

Programowanie w językach asemblera i C

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej.

MIKROPROCESORY architektura i programowanie

Opis układów wykorzystanych w aplikacji

Asembler - język maszynowy procesora

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Lista rozkazów mikrokontrolera 8051

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

Programowanie mikrokontrolerów - laboratorium

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

ND48-RS protokół komunikacyjny ASCII A2.04

SML3 październik 2008

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Politechnika Warszawska

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

4. Karta modułu Slave

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Struktura programu w asemblerze mikrokontrolera 8051

Instytut Teleinformatyki

imei Instytut Metrologii, Elektroniki i Informatyki

Mikroprocesor Operacje wejścia / wyjścia

Sterowanie multipleksowe 4-cyfrowego wyświetlacza siedmiosegmentowego w oparciu o system przerwao mikrokontrolera ATmega16 w języku Asembler

Instytut Teleinformatyki

Wyświetlacze graficzne : 162x64 z kontrolerem S1D x60 z kontrolerem S1D15710

Programowanie mikrokontrolera 8051

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Ćwiczenie 3 Wyświetlacz ciekłokrystaliczny

interfejs szeregowy wyświetlaczy do systemów PLC

SYSTEM PRZERWA Ń MCS 51

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Pracownia elektryczno-elektroniczna klasa IV

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

Mikroprocesory i Mikrosterowniki Laboratorium

CONVERT SP. Z O.O. MK-30-DC M30300 LICZNIK ENERGII PRĄDU STAŁEGO INSTRUKCJA UŻYTKOWNIKA. CIRCUTOR S.A. CONVERT Sp. z o.o.

Zespół Szkół Technicznych. Badanie wyświetlaczy LCD

INSTRUKCJA OBSŁUGI MONITORA LINII PRĄDOWEJ

Ćwiczenie 30. Techniki mikroprocesorowe Programowanie w języku Asembler mikrokontrolerów rodziny '51

Programowanie Mikrokontrolerów

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

SM Wyświetlacz 4x LED, 1x CAN, 1xRS232/485, 2x wejście analogowe

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

Opis procedur asemblera AVR

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Podstawy techniki mikroprocesorowej

Przykładowe pytania DSP 1

Moduł licznika położenia LP 2.

ASCII A2.04 protokół komunikacyjny do wyświetlaczy

MIKROPROCESORY architektura i programowanie

Interfejs analogowy LDN-...-AN

Protokół ASCII stosowany jest do komunikacji z wyświetlaczami LDN i LDA przez interfejs RS232, RS485 lub TTY.

Architektura komputerów

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

Mikrokontrolery wytyczne do projektów

Programowalne Układy Cyfrowe Laboratorium

TDWA-21 TABLICOWY DWUPRZEWODOWY WYŚWIETLACZ SYGNAŁÓW ANALOGOWYCH DOKUMENTACJA TECHNICZNO-RUCHOWA. Wrocław, listopad 1999 r.

Architektura komputerów. Asembler procesorów rodziny x86

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

Badanie układów zewnętrznych mikrokontrolera 311[07].Z4.03

Pamięci EEPROM w systemach mikroprocesorowych, część 2

Pracownia elektryczno-elektroniczna klasa IV

Organizacja typowego mikroprocesora

MIKROKONTROLERY I MIKROPROCESORY

Dokumentacja Licznika PLI-2

Komunikacja w mikrokontrolerach Laboratorium

Ćwiczenie 3. Konwersja liczb binarnych

Współpraca mikrokontrolera z wyświetlaczami: ciekłokrystalicznym i siedmiosegmentowym

Sprzęt i architektura komputerów

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Instytut Teleinformatyki

Dokumentacja sterownika mikroprocesorowego "MIKSTER MCC 026"

SZYMAŃSKI ŁÓDŹ Ul. Wiskicka 22 Tel./fax. (042) Tel./fax. (042) Kom

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

Stanowisko laboratoryjne dla mikrokontrolera ATXmega32A4 firmy Atmel

Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.

Architektura systemów komputerowych

Architektura komputerów

TECHNIKA MIKROPROCESOROWA II

Projekt prostego procesora

Transkrypt:

Ćwiczenie 2 Siedmiosegmentowy wyświetlacz LED

2-1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się studentów ze sposobem obsługi wielopozycyjnego 7-segmentowego wyświetlacza LED multipleksowanego programowo oraz, w efekcie końcowym, napisanie procedury wyświetlającej na wyświetlaczu stabilny obraz składający się z różnych znaków. Przemiatanie wyświetlacza powinno być zrealizowane z wykorzystaniem przerwania od licznika T0, z którym studenci zetknęli się już na poprzednich zajęciach laboratoryjnych. 2. Wyświetlacz Wyświetlacz siedmiosegmentowy oprogramowywany w trakcie ćwiczenia składa się z pięciu pozycji. Szóstą stanowią różnokolorowe diody LED (D1 D8), których obsługa była tematem poprzedniego ćwiczenia. Jedną z pozycji wyświetlacza 7-segmentowego przedstawiono schematycznie na rys.1. a f e g d b c h Rys.1. Oznaczenie segmentów w wyświetlaczu 7-segmentowym LED Segmenty są oznaczane literami od a do h (kropka dziesiętna) rys.1. Anody wszystkich segmentów danej pozycji są ze sobą połączone (wspólna anoda) i sterowane z kolejnych linii portu P2 (od P2.0 do P2.5) rys.2. Katody (segmenty) natomiast z wyjść portu P7 pośrednio poprzez rejestr U4, wzmacniacz prądowy U5 oraz rezystory o wartości 60Ω i 130 Ω ograniczające wartość natężenia prądu płynącego przez diody (segmenty). Aby wyświetlić znak (cyfrę) na jednej z pozycji należy w pierwszej kolejności wysterować żądaną pozycję poprzez wystawienie na odpowiadającej jej lini portu P2 stanu niskiego. Spowoduje to właczenie tranzystora PMOS (T2 T7) i tym samym podłącznie anody danej pozycji do potencjału +5V. Następnie należy na porcie P7 wystawić wartość określającą wyświetlany znak i zatrzasnąć ją w rejestrze U4 poprzez zmianę stanu lini CK_D (P5.6) z niskiego na wysoki (układ zatrzaskuje wartość wraz z pojawieniem się zbocza narastającego na lini CK_D). Jeżeli dany bit na wyjściu układu U4 ma wartość 1, odpowiadający mu segment wybranej wcześniej pozycji świeci się. W Tabeli 1 zebrano wartości (w kodzie binarnym i heksadecymalnym) odpowiadające poszczególnym cyfrom dziesiętnym.

3- Rys.2. Schemat poglądowy podłaczenia wyświetlaczy 7-segmentowych do mikrokontrolera. Tabela 1: Bajty sterujące wyświetlaczem 7-segmentowym h g f e d c b a h g f e d c b a 0 0 1 1 1 1 1 1 (3FH) "0" 0 0 0 0 0 1 1 0 (06H) "1" 0 1 0 1 1 0 1 1 (5BH) "2" 0 1 0 0 1 1 1 1 (4FH) "3" 0 1 1 0 0 1 1 0 (66H) "4" 0 1 1 0 1 1 0 1 (6DH) "5" 0 1 1 1 1 1 0 1 (7DH) "6" 0 0 0 0 0 1 1 1 (07H) "7" 0 1 1 1 1 1 1 1 (7FH) "8" 0 1 1 0 1 1 1 1 (6FH) "9" 0 1 1 1 0 1 1 1 (77H) "A" 0 0 1 1 1 0 0 1 (39H) "C" 0 1 1 1 1 0 0 1 (79H) "E" 0 1 1 1 0 0 0 1 (71H) "F" 0 1 1 1 0 1 1 0 (76H) "H" 0 0 0 0 1 1 1 0 (0EH) "J" 0 0 1 1 1 0 0 0 (38H) "L" 0 1 1 1 0 0 1 1 (73H) "P" 0 0 1 1 1 1 1 0 (3EH) "U" 0 1 0 1 1 0 0 0 (58H) "c" 0 1 0 1 1 1 1 0 (5EH) "d" 0 1 1 1 0 1 0 0 (74H) "h" 0 1 0 1 0 1 0 0 (54H) "n" 0 1 0 1 1 1 0 0 (5CH) "o" 0 1 0 1 0 0 0 0 (50H) "r" 0 0 0 1 1 1 0 0 (1CH) "u" 0 1 0 0 0 0 0 0 (40H) "-" Aby wyświetlić dany znak z kropką należy na najstarszym bicie portu P7 (P7.7) wystawić 1. Sterowanie pozycjami wyświetlacza ma charakter dynamiczny, tzn. w danej chwili aktywna jest tylko jedna pozycja wyświetlacza, ale "przemiatanie" poszczególnych pozycji można uczynić na tyle szybkim, aby ludzkie oko odbierało stabilny obraz.

4-3. Algorytm i struktura danych programu obsługi Obsługa wyświetlacza znajdzie się w procedurze obsługi przerwania od licznika T0. Można ją zrealizować dwoma algorytmami przedstawionymi w Tabeli 2. Tabela 6. Algorytmy obsługi wyświetlacza Algorytm 1 Algorytm 2 1. Wygaszenie wszystkich segmentów Wyłączenie wszystkich pozycji 2. Włączenie nowej pozycji Podanie wartości określającej znak wyświetlany na nowej pozycji 3. Podanie wartości określającej znak wyświetlany na nowej pozycji Włączenie nowej pozycji Potrzebna jest również odpowiednia struktura danych - 5 bajtów, w których zapamiętane będą znaki wyświetlane na kolejnych pozycjach wyświetlacza. 4. Zadanie do wykonania: a) na ocenę w zakresie 0 4 punktów: Uzyskać stabilny obraz na wszystkich pozycjach wyświetlacza, przy czym na każdej pozycji ma być wyświetlony inny znak. Do multipleksowania wyświetlacza wykorzystać przerwanie czasowe Timera T0. Dane do wyświetlania mają być pobierane z bufora wyświetlacza umieszczonego w wewnętrznej pamięci RAM mikrokontrolera. Zawartość bufora wyświetlacza ma być inicjowana przepisaniem zdefiniowanego tekstu z pamięci programu. Wskazówki: Ciąg instrukcji przedstawiony poniżej realizuje fragment algorytmu nr 1 (Tabela 2) DIGIT0 equ P2.0 DIGIT1 equ P2.1 DIGIT2 equ P2.2 DIGIT3 equ P2.3 DIGIT4 equ P2.4 LEDS equ P2.5 CK_D equ P5.6... mov P2, #0ffh ; wylaczenie wszystkich pozycji wyswietlacza... mov P7, #00h ; wystawienie wartości powodującej ; wylaczenie wszystkich segmentow clr CK_D setb CK_D ; zatrzasniecie bajtu sterujacego w zatrzasku U4 clr DIGIT2 ; wybranie nowej pozycji mov P7, #7Dh ; wlaczenie segmentow odpowiadajacych nowej pozycji clr CK_D setb CK_D ; zatrzasniecie bajtu sterujacego w zatrzasku U4... Aby wyświetlany obraz był stabilny częstotliwość odświeżania powinna wynosić minimum 60Hz (zalecane 100Hz). Zmiana pozycji powinna następować co 2ms.

5- W celu uzyskania takiego czasu pomiędzy kolejnymi przerwaniami licznika T0, powinien być on przeładowany każdorazowo wartością T0Reload = 65536 500. Napis, który pojawi się na wyświetlaczu, można umieścić w pamięci programu. Załóżmy, że na wyświetlaczu chcemy wyświetlić kolejne cyfry: 0, 1, 2, 3, 4, 5. W programie tworzymy tablicę: display: ; adres bazowy tablicy znaków db 3FH ; 0 db 06H ; 1 db 5BH ; 2 db 4FH ; 3 db 66H ; 4 db 6DH ; 5 można też użyć db tylko jeden raz w następujący sposób: display: db 3FH, 06H, 5BH, 4FH, 66H, 6DH Dyrektywa db (define byte) inicjalizuje bajt/y w pamięci programu. Pierwszy zdefiniowany bajt jest umieszczony pod adresem display, następny pod adresem o 1 większym, itd. Dostęp do tablicy danych umieszczonych w pamięci programu jest możliwy za pomocą instrukcji: movc A, @A+DPTR W wyniku wykonania tej instrukcji do akumulatora zostaje przesłana zawartość komórki pamięci programu o adresie równym sumie początkowej zawartości akumulatora oraz zawartości wskaźnika danych DPTR. Aby odwołać się do uprzednio zdefiniowanej tablicy znaków, trzeba nadać wartość początkową wskaźnikowi danych (adres początku tablicy): mov DPTR, #display Jeżeli teraz chcemy pobrać do akumulatora, ze zdefiniowanej tablicy, kod (bajt) odpowiedniej cyfry, to do akumulatora musimy wpisać numer elementu tablicy do pobrania (elementy liczone są od zera) i wykonać instrukcję: movc A, @A+DPTR Jeżeli przykładowo chcemy pobrać kod cyfry 2, to odpowiedni program będzie wyglądał nastepująco: mov DPTR, #display mov A, #2 movc A, @A+DPTR Pobranie innych elementów tablicy wymaga odpowiedniej modyfikacji zawartości akumulatora lub wskaźnika danych (za pomocą instrukcji inc DPTR). UWAGA: tablicę znaków trzeba umieścić w takim miejscu programu, aby licznik rozkazów nie mógł przyjąć wartości odpowiadających adresom w obszarze tablicy znaków, gdyż oznaczałoby to, że pewien fragment tablicy zostanie potraktowany jako kolejna instrukcja do wykonania. Tablica może być umieszczona np. bezpośrednio po instrukcji bezwzględnego skoku (jmp) albo po instrukcji ret czy reti.

6- b) na ocenę w zakresie 0 6 punktów: Napisać procedurę obsługi przerwania czasowego Timera T0 obsługującą wyświetlacz (multipleksowanie czasowe pozycji) oraz realizującą efekt płynącego tekstu. Tekst wsuwa się do wyświetlacza z prawej. Długość tekstu ma być dowolna w granicach rozsądku (tj. od 15 do 40 znaków). Ostatnie pięć znaków wyświetlanego tekstu ma być ciemne na wyświetlaczu. Dane do wyświetlania mają być pobierane z bufora wyświetlacza umieszczonego w wewnętrzniej pamięci RAM mikrokontrolera. Zawartość bufora ma być inicjowana przepisaniem zdefiniowanego tekstu z pamięci programu. Po zakończeniu wyświetlania rozpoczyna się wyświetlanie tekstu od początku od pierwszego znaku. Szybkość przesuwu programowana (stałą) w rozsądnych granicach. Wskazówki: Do uzyskania efektu pływającego tekstu można wykorzystać również licznik T0, który spowoduje przesunięcie tekstu o jedną pozycje co n-te swoje przerwanie. Timer_Interrupt: push ACC mov SFRPAGE, #TIMER01_PAGE mov TH0, #0dfh mov TL0, #0ffh mov SFRPAGE, #CONFIG_PAGE djnz VALUE2, Label_1 mov VALUE2, #0ffh ; flaga READY1 ustawiana co 255 przerwan setb READY1 Label_1: pop reti ACC c) na ocenę w zakresie 0 8 punktów: Zadanie z punktu b) oraz napisać program główny przełączający wyświetlanie pomiędzy tekstami po dwukrotnym wyświetleniu (przesunięciu) każdego z nich. UWAGA: Wyświetlacz jest przystosowany do pracy w trybie multipleksowanym w związku z tym próba wyświetlenia na wszystkich sześciu pozycjach (także na diodach LED), tej samej wartości (np. 0ffh) spowoduje nieoczekiwane dziwne efekty. UWAGA!!!! Przed przystąpieniem do realizacji ćwiczenia przeprowadzony zostanie krótki (ok. 10 min.) sprawdzian za 2 p. Zakres materiału: posługiwanie się asemblerem (dopuszcza się korzystanie z listy instrukcji); przeznaczenie rejestrów specjalnych wykorzystywanych w ramach ćwiczenia.

7-