Systemy wybudowane
Sprawozdanie: ARM 7 – obsługa wyświetlacza LCD
Wstęp teoretyczny
Podczas laboratorium zapoznaliśmy się z obsługą oraz zasadą działania wyświetlacza ciekłokrystalicznego typu AC162BYA .
Naszym zadaniem było napisanie programu w języku C, który będzie wyświetlał przesuwający się napis podany przez użytkownika.
Zestaw uruchomieniowy MCB2300 oparty jest na mikrokontrolerze LPC2378 zawierającym procesor ARM7TDMI-S, realizowanym w 32-bitowej architekturze RISC.
Architektura mikrokontrolera określona jest wokół dwóch magistrali: zaawansowaną magistralę wysokiej wydajności AHB, służącą do szybkiej komunikacji z pamięcią zewnętrzną oraz wbudowanymi peryferiami, oraz zaawansowaną magistralę peryferyjną APB, służącą do komunikacji z pozostałymi urządzeniami peryferyjnymi.
Wyświetlacz zastosowany w ćwiczeniu jest wyświetlaczem matrycowym, który zawiera moduł kontrolera i układ wykonawczy wykonany w technologii LSI, pozwalający wyświetlać znaki alfanumeryczne i symbole graficzne. Wyświetlacz może współpracować z mikrokomputerem jednoukładowym lub mikroprocesorem z szyną danych cztero- lub ośmiobitową. Wyświetlacz wyposażony jest również w wewnętrzną pamięć RAM i ROM.
Kod programu
Omówienie kodu:
Linie od 1 do 46 zostały napisane zgodnie z instrukcją i zaleceniami prowadzącego.
Funkcja delay (48-53) powoduje opóźnienie (jak sama nazwa wskazuje), w zależności od podanego argumentu.
Wspólnie z prowadzącym zajęcia została napisana funkcja read_status (55-73), która sprawdza status zajętości. Największą trudnością było złączenie dwóch cztero bitowych wartości w jedną ośmio bitową.
Linie ( 74-80 ) funkcja Wait oczekuje do momenty kiedy najstarszy bit statusu jest ustawiony na 1. Oznacza to, że układ jest gotowy do wykonania nowej operacji.
Funkcje lcd_write_4bit, lcd_write_cmd (81-96) odpowiedzialne są za wyświetlanie na ekranie LCD znaku.
Kolejna funkcja lcd_clear jak sama nazwa wskazuje odpowiedzialna jest za czyszczenie wyświetlacza LCD.
Za wyświetlanie ciąga znaków odpowiedzialna jest lcd_print. Przyjmuje ona wskaźnik na pierwszy znak wyświetla go i „przechodzi” na kolejny, dzieje się tak dopóki nie wypisze całego ciągu.
Funkcja init (116-131 ) została zaimplementowana zgodnie z algorytmem przedstawionym w instrukcji
W main (135-151) mamy wywołanie inicjalizacji, wyczyszczenie wyświetlacza oraz wyświetlenie napisy :”Czy tata czyta cytaty Tacyta” . Następnie obraz jest przesuwany w prawo.
Wnioski
- Układ działa zgodnie z oczekiwaniami,
- Wyświetlany i przesuwany jest ciąg znaków,
- Początkowo ekran miał za mały kontrast i nie było widać wyświetlanego napisu.
- Nieoceniona pomoc prowadzącego pomogła na odnieść końcowy sukces.