Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

MODUL DISPLEJE LTN 211. Modul displeje LTN 211 LTN 211 je modul dvouřádkového bodového displeje s kapalnými krystaly Obsahuje zabudovaný mikrořadič HD.

Podobné prezentace


Prezentace na téma: "MODUL DISPLEJE LTN 211. Modul displeje LTN 211 LTN 211 je modul dvouřádkového bodového displeje s kapalnými krystaly Obsahuje zabudovaný mikrořadič HD."— Transkript prezentace:

1 MODUL DISPLEJE LTN 211

2 Modul displeje LTN 211 LTN 211 je modul dvouřádkového bodového displeje s kapalnými krystaly Obsahuje zabudovaný mikrořadič HD 4478 a tak tvoří inteligentní zobrazovací jednotku. Součástí mikrořadiče je paměť RAM s kapacitou 40 zobrazovaných znaků pro každý řádek a generátor znaků se 160 pevnými znaky v paměti ROM a osmi uživatelem programovatelnými znaky v paměti RAM.

3 Spolupracuje se 4-bitovými i 8-bitovými procesory Paměť zobrazovaných dat znaků Generátor znaků ROM znaků 5x7 bodů RAM znaků 5x7 bodů Paměť zobrazovaných znaků i uživatelem definovaných znaků lze přečíst nadřazeným procesorem Modul displeje LTN 211

4 Široký instrukční soubor, např. funkce:  Smazání displeje, funkce home, zapnutí/vypnutí displeje,  zapnutí/vypnutí kurzoru, blikání kurzoru, posun kurzoru/textu Vnitřní automatický reset po připojení napájecího napětí. Modul displeje LTN 211

5 Modul displeje je k mikroprocesoru 68 HC11 připojen datovou sběrnicí DO - D7 a řídicími signály E, RS a R/W. Výběrový signál E je generován adresovým dekodérem: signál výběru registru RS přísluší nejnižšímu bitu adresy a signál zápis/čtení R/W je dostupný přímo z mikroprocesoru. Displej je umístěn na adrese $8000 (řídicí registr) a $8001 (datový registr) Modul displeje LTN 211

6 Displej se automaticky inicializuje po připojení napájecího napětí vnitřním obvodem pro reset. Po resetu se provedou následující instrukce: Smazání displeje Nastavení konfigurace: Inicializace displeje

7 DL šířka datové sběrnice 8 bitů D vypnutý displej C vypnutý kurzor B vypnuté blikání I/D automatická inkrementace adresy při zápisu S odsouvání textu z naplněného displeje vypnuto Naplnění paměti pro zobrazované znaky hodnotou $00 Inicializace displeje

8 Po dobu automatické inicializace displeje je nastaven příznak vnitřního zpracování (BF = 1). Doba inicializace je asi 10 ms od dosažení úrovně napájecího napětí 4,5 V. Inicializace displeje

9 Nadřazený procesor může přímo ovládat pouze dva registry mikrořadiče displeje (tj. instrukční registr IR a datový registr DR) a to pouze v době, kdy mikrořadič displeje není zaměstnán vnitřním zpracováním informace. Před každým započetím vnitřní operace mikrořadiče je do těchto registrů zapsána stavová informace. Operace mikrořadiče jsou ovládány signály DO-D7, RS a RW. Tyto signály jsou nadále nazývány instrukcemi. Instrukce pro ovládání displeje

10 Instrukce pro nastavení pracovního režimu Instrukce pro nastavení adresy interní paměti RWM Instrukce pro přenos zobrazovaných dat do/z interní paměti RWM Instrukce lze rozdělit na:

11 Smazání displeje R R D D S W 7 0 Kód: Náplní paměť pro zobrazovaný text kódem mezery ($20). Vynuluje adresový čítač, tj. nastaví kurzor na pozici prvního znaku na prvním řádku. Nastaví režim inkrementace adresového čítače (1/D = 1), režim posunu textu (S) se nemění. Popis jednotlivých instrukcí

12 Kurzor na počátek RRDD SW70 Kód: * Vynuluje adresový čítač, tj. nastaví kurzor na pozici prvního znaku na prvním řádku. Data v paměti zobrazovaného textu zůstávají nezměněna.

13 Vstupní režim RRDD SW70 Kód: I/DS Definuje chování displeje při zápisu a čtení dat.

14 Vstupní režim I/D - Při zápisu nebo čtení dat se zvyšuje (I/D = 1) nebo snižuje (I/D = 0) adresa v adresovém čítači o 1. Kurzor se přitom pohybuje doprava (I/D = 1) nebo doleva (I/D = 0). K nastavené změně adresy dochází i při zápisu či čtení do/z paměti generátoru znaků. S - Odsouvání textu. Při S = 1 se zobrazovaný text při zápisu do paměti RAM posouvá po displeji. Vypadá to jako by kurzor stál na místě a text se odsouval doprava nebo doleva v závislosti na I/D. Při čtení z paměti se text nepohybuje.

15 Režim displeje RRDD SW70 Kód: DCB Nastavuje zobrazovací režim, zapíná a vypíná displej.

16 Režim displeje D - Zapnutí a vypnutí displeje. Pro D = 1 je displej zapnut. Po vypnutí displeje (D = 0) zůstávají zobrazovaná data v paměti a jsou opět zobrazena ihned po zapnutí displeje (D = 1). C - Zobrazení kurzoru. Kurzor je zobrazen jako podtržítko na osmém řádku matice znaku. Pozice kurzoru odpovídá obsahu adresového čítače. B - Blikání znaku. Je-li B = 1 znak na pozici kurzoru bliká. Blikání je provedeno záměnou zobrazovaného znaku a plného obdélníčku (znak FF hex, viz. Tabulku v příloze D) v taktu 2.5 Hz.

17 Posun kurzoru nebo textu RRDD SW70 Kód:000001S/CR/L* * - libovolná hodnota.

18 Posun kurzoru nebo textu Posunuje kurzor (S/C = 0) nebo text (S/C = 1) doprava (R/L = 1) nebo do leva (R/L = 0) bez zápisu nebo čtení zobrazovaných dat. Funkce je použitelná pro opravy a prohlížení zobrazovaného textu. Po přechodu za 40 znak prvního řádku kurzor přejde na řádek druhý. Při posunu textu se posunují oba řádky zároveň. Text se pohybuje pouze vodorovně, tzn., že text na druhém řádku se nemůže posunout na řádek první. Při posunu textu se nemění obsah adresového čítače.

19 Funkční soubor RRDD SW70 Kód:000001DL0* * - libovolná hodnota.

20 Funkční soubor Nastavení délky instrukcí. Pro osmibitové instrukce je DL = 1, pro čtyřbitové je DL = 0. Upozornění: Pro správnou součinnost modulu displeje s mikroprocesorem 68HC11 je třeba dodržet nastavení DL = 1.

21 Nastavení adresy v paměti RWM u generátoru znaků RRDD SW70 Kód:0001 aa aa aa  Vyšší bity adresy Nastaví binární adresu „aaaaaa“ do adresového čítače. Po této instrukci je možné zapisovat nebo číst data definice uživatelsky programovaných znaků.

22 Nastavení adresy v paměti zobrazovaného textu RRDD SW70 Kód:0001 aa aa aa  Vyšší bity adresy Nastavení binární adresy „aaaaaaa“ do adresového čítače. Slouží k nastavení místa kam se mají zapisovat nebo odkud se mají číst zobrazovaná data. Prvnímu řádku odpovídají hexadecimálně adresy $00 - $27, druhému $40 - $67.

23 Čtení příznaku obsazení a adresy RRDD SW70 Kód:00BFa aa aa aa  Vyšší bity adresy

24 Čtení příznaku obsazení a adresy Přečtěte aktuální stav mikrořadiče displeje. Hodnota příznaku obsazení BF ukazuje stav mikrořadiče. Je-li BF = 1 mikrořadič provádí interní operace a nemůže přijmout žádnou instrukci (kromě opětovného čtení řídicího registru).

25 Čtení příznaku obsazení a adresy Hodnotu BF je třeba kontrolovat před každou novou instrukcí pro displej a případně vyčkat na dokončení provedení předcházející instrukce. Současně s příznakem obsazení je přečten také aktuální stav adresového čítače (bity „aaaaaaa“).

26 Zápis dat do paměti textu a generátoru znaků RRDD SW70 Kód:10d ddddddd  Vyšší bity adresy

27 Zapíše data „ddddddd“ na adresu, která se právě nachází v adresovém čítači. Adresa v čítači závisí na provedení předcházejících instrukcí (nastavení adresy), posun kurzoru, příp. zápis nebo čtení paměti). Po zápisu se automaticky zvýší nebo sníží adresa v adresovém čítači o 1 a případně dojde k posunu zobrazeného textu v závislosti na nastaveném vstupním režimu displeje. Zápis dat do paměti textu a generátoru znaků

28 Čtení dat z paměti textu nebo generátoru znaků RRDD SW70 Kód:11d ddddddd  Vyšší bity adresy

29 Přečtěte data „ddddddd“ z paměti zobrazovaného textu nebo generátoru znaků. Před čtením dat je třeba nastavit adresu v adresovém čítači instrukcemi nastavení adresy příp. posun kurzoru. Čtení dat z paměti textu nebo generátoru znaků

30 Bez tohoto nastavení jsou první přečtená data chybná. Při čtení bloku paměti stačí nastavit adresu bloku před prvním čtením. Adresa v čítači se po každém čtení automaticky zvyšuje či snižuje (podle nastaveného vstupního režimu) a čtená data jsou platná. Čtení dat z paměti textu nebo generátoru znaků

31 PŘÍKLADY KOMUNIKACE MEZI 68HC11 A DISPLEJEM Zadání instrukce návrat na počátek (home) 1daa#$02uložení hodnoty $ bin do akumulátoru A staa$8000 zapsání této hodnoty do řídicího registru displeje Přečtení BF a adresy v čítači 1 daa$8000 přečtení obsahu řídicího registru

32 Přečtení dat z 2., pozice na prvním řádku 1daa$#81nastavení adresy #$01 tj. 2. pozice prvního staa#$8000řádku Loop 1daa#$8000načtení BF a adresy bita#$80test BF bneloopje-li BF = 1, čekej 1daa#$8001přečtení dat. PŘÍKLADY KOMUNIKACE MEZI 68HC11 A DISPLEJEM

33 PAMĚŤOVÝ PROSTOR DISPLEJE Pro uložení kódu zobrazovaných znaků je celkem k dispozici 2x40 paměťových míst, z nichž může být vždy jen 2x16 znaků průběžně zobrazeno. Toto zobrazovací okénko lze přesouvat změnou vnitřní adresy nebo posunem kurzoru. Běžně zobrazitelné znaky jsou v této paměti reprezentovány svými ekvivalenty v kódu ASCII.

34 Generátor znaků Znakový generátor vytváří obrazce 5x7 bodů odpovídající kódům znaků. Kódy $00 až $07 osmi uživatelsky programovatelným znakům.

35 Generátor znaků Vztah mezi kódem programovatelného znaku jeho uložením v paměti generátoru znaků ukazuje tab. Naprogramování jednoho znaku sestává z nastavení inkrementálního vstupního režimu nastavení počáteční adresy umístění znaku a zapsání osmi hodnot do datového registru (inkrementace adresového čítače se děje automaticky).

36 Mapa paměťového prostoru pro uložení zobrazovaných kódů: pozice na displ. 1. řádek adresa v paměti 2. řádek (hexadecimálně)

37

38 POPIS OVLADAČE DISPLEJE Ovladač displeje je tvořen souborem podprogramů, které vykonávají nejběžnější příkazové sekvence, jako je inicializace, smazání, zobrazení daného znaku nebo textu na displeji apod. Ovladač se standardně ukládá od adresy $D000, ale je možné jej uložit na libovolné místo v paměti přepsáním hodnoty DSTART.

39 Podprogramy ovladače: dinit- inicializace displeje Parametry :žádné Návratové hodnoty:žádné Podprogram provede softwarovou inicializaci displeje, nastaví jeho režim na D/I = 1, S = 0, D = 1, C = 0, B = 0, naprogramuje znaky ý (kód $01), ř(kód $02), č(kód $03), zobrazí inicializační text: Mikroprocesorový řadič MS11 Mesit a vyčká dokončení všech vnitřních operací displeje (včetně inkrementace adresového čítače.

40 dels - smazání displeje Parametry:žádné Návratové hodnoty:žádné Smaže displej, umístí kurzor na začátek 1. řádku, v adresovém čítači nastaví odpovídající adresu ( ) a vyčká dokončení vnitřních operací displeje. Podprogramy ovladače:

41 dline1- umístění kurzoru na začátek 1. řádku Parametry:žádné Návratové hodnoty:A - obsah adresového čítače ($00) Umístí kurzor na začátek 1. Řádku bez změny v paměti zobrazeného textu. Nastaví odpovídající adresu v adresovém čítači ($00) a vyčká dokončení vnitřních operací displeje. V akumulátoru A vrátí obsah adresového čítače. Podprogramy ovladače:

42 dline2 - umístění kurzoru na začátek 2. řádku Parametry:žádné Návratové hodnoty:A - obsah adr. čítače ($40) Umístí kurzor na začátek 2. Řádku bez změny v paměti zobrazovaného textu. Nastaví odpovídající adresu v adresovém čítači ($40) a vyčká dokončení vnitřních operací displeje. V akumulátoru A vrátí obsah adresového čítače. Podprogramy ovladače:

43 Dprog - naprogramování uživatelského znaku Parametry:A - kód znaku IY - adresa definice znaku Návratové hodnoty:A - obsah adr. čítače před voláním podprogramu Podprogramy ovladače:

44 Dprog Naprogramuje do paměti RWM generátoru znaků jeden znak a vyčká dokončení vnitřních operací displeje. V akumulátoru A očekává kód pod kterým bude znak uložen (0-7) a v registru IY adresu začátku definice znaku. Definice znaku odpovídá obrazci znaku v tab. Podprogram nezmění obsah adresového čítače, tedy ani pozici kurzoru. Obsah adresového čítače vrátí v akumulátoru A.

45 Douta - zobrazení znaku na pozici kurzoru Parametry: A - kód zobrazovaného znaku Návratové hodnoty:A - obsah adresového čítače Zobrazí znak, jehož kód je v akumulátoru A na pozici kurzoru. Následný pohyb kurzoru nebo textu závisí na vstupním režimu displeje. Vyčká dokončení vnitřních operací a v akumulátoru A vrátí nový obsah adresového čítače. Podprogramy ovladače:

46 dtext - zobrazí řetězec znaků Parametry:A - kód znaku IY - adresa textu Návratové hodnoty:A - obsah adresového čítače Podprogramy ovladače:

47 Zobrazí řetězec znaků ukončený nulovým bajtem, jehož adresa je v registru IY. Toto zobrazení provede na řádku, jehož kód je v akumulátoru A(DLN1),DLN2). Vyčká dokončení vnitřních operací displeje a v akumulátoru A vrátí obsah adresového čítače. Pokud chceme řetězec zobrazit jinde než od začátku řádku, je možné do akumulátoru A místo konstanty DLN1 nebo DLN2 umístit instrukci nastavení adresy v paměti textu s adresou odpovídající pozici, na které chceme text zobrazit. Dtext

48 Tertext - přečtení obsahu paměti textu a jeho zobrazení na terminálu Parametry:žádné Návratové hodnoty:žádné Podprogramy ovladače:

49 Tertext Přečte obsah paměti textu a vyšle jej na terminál. Ve standardním provedení program vyžaduje, aby byl spuštěn pod monitorem M-Buffalo, ve kterém je podprogram outa, vysílající znak v akumulátoru A na terminál. Pokud program není spuštěn pod monitorem M-Buffalo nebo potřebujeme znaky čtené z displeje zpracovat jiným způsobem, stačí přepsat volání podprogramu outa voláním vlastního podprogramu. Přečtený znak je předáván v akumulátoru A.

50 bftext - vyčkání na dokončení vnitřních operací Parametry: žádné Návratové hodnoty:A - obsah adresového čítače Testuje příznak BF a čeká na jeho vynulování. V akumulátoru A vrátí obsah adresového čítače. Podprogramy ovladače:

51 dawait- čekání 6  s Parametry:žádné Návratové hodnoty:žádné Čekací smyčka o délce 6  s. Využívá se k čekání na inkrementaci adresového čítače. Podprogramy ovladače:

52 překládá (transformuje) data nebo adresy z různých číselných soustav (např. z desítkové, osmičkové, šestnáctkové) do dvojkové a překládá i znaky do odpovídajících kódů ASCII, umožňuje programátorovi, aby rezervoval a přiděloval paměť dočasné uchování dat, PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU

53 umožňuje programátorovi uložit konstanty na určeném místě v paměti, umožňuje programátorovi přiřadit symbolická jména paměťovým místům a vstupně-výstupním registrům, umí vykonat některé aritmetické operace jako součást procesu překladu, informuje programátora o formálních chybách v programu. PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU

54 Zdrojové programy pro překladač (assembler) se zapisují v jazyce symbolických adres (instrukcí), který se také v praxi nazývá assembler. Zdrojový jazyk připouští použití množiny znaků, které assembler umí rozpoznat: PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU

55 písmena anglické abecedy, číslice 0 až 9, znaky používané jako speciální prefixy:  #určuje bezprostřední adresování  $určuje šestnáctkové (hexadecimální) číslo  %určuje dvojkové číslo,  ‘ (apostrof) určuje znak ASCII, PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU

56 speciální znaky aritmetických operací: +,-, *,/, čtyři speciální znaky jako oddělovače:  mezera  horizontální posuv (TAB)  CR(Carriage Return) - konec řádku, , (čárka), komentář ve zdrojovém řádku, který může obsahovat znaky ASCII, se ale nepřekládá. PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU

57 Zdrojový program, který vytváříme textovým editorem, se skládá z posloupnosti zdrojových řádků. Zdrojový řádek lze zpravidla rozdělit do čtyř polí např. v následujícím uspořádání: PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU

58 Uspořádání Mnemonické označení instrukce nebo direktiva Komentář Operand Návěští, může se v programu dále používat jako adresový operand START LDAA# $FF Naplnění registru A jedničkami

59 Protože návěští určuje adresu instrukce, není dovolena dvojznačnost ve specifikaci hodnoty návěští, např.: STARTLDAA# $ 45 ADDANUMBER STARTSTAAPLACE.. JMPSTART PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU

60 Je však dovoleno víckrát se na návěští odvolávat: STARTLDAA$ 45 ADDANUMBER STAAPLACE.. JMPSTART.. BNESTART PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU

61 Symbolická jména PLACE a NUMBER musí být v programu definována pomocí direktiv. Direktivy jsou pseudoinstrukce pro přiřazení symbolických názvů číselným hodnotám adres nebo dat, jako je např. instrukce EQU uvedená dále. Pole komentářů následuje za polem operandů a je oddělené jednou nebo více mezerami. I celý zdrojový řádek může být komentářem, jestliže znak na první pozici je *. Znak * může taky posloužit k naprogramování skoku zpět na stejnou instrukci např. místo: PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU

62 Asembler umožňuje ve zdrojovém programu používat příkazy, které se vztahují na řízení vlastního překladače (assembleru). Při překladu se těmto mnemonickým příkazům nepřiřazují žádné strojové kódy. Takovéto instrukce se nazývají pseudo-instrukce nebo direktivy. PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU

63 Programy a data se mohou ukládat v různých oblastech paměti v závislosti na organizaci adresovatelného prostoru. Direktiva ORG, která se zpravidla uvádí na začátku zdrojového programu, slouží k určení počátečního místa programu a dat v paměti. PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU

64 Příklad ORG$ 100Určení počáteční adresy cílového programu v paměti mikrořadiče LDAA#$ 5Naplnění akumulátoru A hodnotou #$ C5. LDAA$ C5Naplnění akumulátoru A hodnotou, která je uložena na adrese $00C5.

65 Uložení těchto instrukcí do paměti je následující: Adresa paměťového místa: Obsah paměťového místa $0100$86LDAA #SC5 $0101$C5 $0102$96LDAA $CS $0103$C5

66 FCB Direktiva FCB (Form Constant Byte) má jeden nebo víc operandů oddělených čárkami. Direktiva FCB přiděluje určeným paměťovým buňkám daný obsah specifikovaný v poli operandu.

67 Příklad ORG $200 DATA FCB $10,$20, $30, 16 Uložení do paměti: Adresa paměťového místa Obsah paměťového místa: $0200$10 $0201$20 $0202$30 $0203$10 V programu pak můžeme dále psát: LDAADATA+1Do A dej hodnotu z adresy $0201, tj. $20 LDX#DATADo IX dej adresu $0200.

68 FDB Direktiva FDB (Form Constant Double Byte) přiděluje určeným dvojicím paměťových buněk 16-bitové hodnoty. Např. ORG$300 TABLEFDB$AFFF, %

69 Uložení do paměti: Adresa paměťového místaObsah paměťového místa $0300$AF $0301$FF $0302$OF $0303$FO

70 V programu pak můžeme psát: LDXTABLEDo IX ulož hodnotu z adres $0300 a $0301 tj.$AFFF LDY#TABLEDo IY ulož adresu $0300. Direktiva FDB (Form Constant Double Byte) vloží do paměťových buněk kódy určených ekvivalentů ASCII. Například programový úsek: ORG$400 TABLEFCC‘TEXT’

71 Uložení do paměti: Adresa paměťového místa Obsah paměťového místa $0400$54 $0401$45 $0402$58 $0403$54

72 RMB Direktiva RMB (Reserve Memory Bite) se používá pro rezervaci místa v paměti. Například: ORG$2000 DATARMB10

73 RMB Na adrese $2000 se vyhradí 10 paměťových buněk, na které je možné se odvolávat návěštím DATA, např.: STADATA+5Na adresu $2005 se uloží obsah akum. A

74 EQU Direktiva EQU (Equate Symbol Value) slouží na přiřazení hodnoty symbolu, který se může objevit v programu na více místech. Symbol, kterému se přiřazuje hodnota, se uvádí v poli návěští. Například: PORTCEQU$1003

75 EQU Symbolu PORTC je přiřazena hodnota $1003, takže např. instrukce LDAAPORTC naplní akumulátor A obsahem z paměťové buňky (portu C) na adrese $1003. Použitím pseudoinstrukce EQU se zvyšuje srozumitelnost programu. Např. čekání, dokud na nultém výstupu portu B nebude log. 1 naprogramujeme následovně:

76 EQU REGPOLEEQU$1000Počátek reg. pole PORTBEQU$04Registr PORTB v reg. poli Vystup_PBO EQU$01Nultý výstup portu B. LDYREGPOLEDo IY hodnota $1000. BRCLR PORTB, y Vystup_PBO * Čekací smyčka.

77 Překlad 68HC11 Na překlad zdrojových programů pro 68HC11 na osobních počítačích XT/AT jsou dostupné jako freeware od firmy Motorola asemblery.

78 Asembler Program as11.exe, jehož příkazový řádek může být např. ve tvaru: AS11 program.asm - 1 c s > program. lst Zdrojový soubor soubor protokolu o překladu (listing file)

79 Asembler Tento assembler generuje soubor pod jménem „program.s19“. Je v něm tzv. záznam typu S strojového kódu, v němž je uložen jak vlastní strojový kód, tak i pomocné kódy, jež umožňují určeným pomocným programem (např. monitorem M-Buffalo) načtení strojového kódu do paměťového systému mikrořadiče.


Stáhnout ppt "MODUL DISPLEJE LTN 211. Modul displeje LTN 211 LTN 211 je modul dvouřádkového bodového displeje s kapalnými krystaly Obsahuje zabudovaný mikrořadič HD."

Podobné prezentace


Reklamy Google