Obsah:

Malé hodiny s LED maticovým displejom: 8 krokov
Malé hodiny s LED maticovým displejom: 8 krokov

Video: Malé hodiny s LED maticovým displejom: 8 krokov

Video: Malé hodiny s LED maticovým displejom: 8 krokov
Video: Trek Fuel EXe Webinar 2024, Júl
Anonim
Image
Image
Malé hodiny s LED maticovým displejom
Malé hodiny s LED maticovým displejom
Malé hodiny s LED maticovým displejom
Malé hodiny s LED maticovým displejom
Malé hodiny s LED maticovým displejom
Malé hodiny s LED maticovým displejom

Vždy som chcel mať staromódne stolné hodiny, ktoré vyzerajú ako z filmov z 90. rokov, s veľmi skromnou funkčnosťou: hodiny v reálnom čase, dátum, zmena pozadia, pípnutie a možnosť budíka. Prišiel som s nápadom postaviť jeden: Digitálne zariadenie založené na mikrokontroléri so všetkými funkciami, ktoré som spomenul vyššie, napájané z USB - buď z počítača, alebo z akejkoľvek mobilnej USB nabíjačky. Pretože som to chcel naprogramovať, s ponukami a úpravami nastavení, umiestnenie MCU bolo v tomto projekte nevyhnutné. ATMEGA328P IC (z ktorého sa skladá každá doska Arduino Uno) bol vybraný ako „mozog“obvodu (keď už o tom hovorím, mal som ich jednoducho veľa). Kombinácia niektorých elektronických súčiastok ako RGB LED, čipu s časomierou nabitia a tlačidiel umožnila zrod celého projektu-programovateľné stolné hodiny s malým LED displejom.

Potom, čo sme pokryli entitu projektu, poďme ho postaviť

Krok 1: Myšlienka

Nápad
Nápad

Ako už bolo spomenuté, naše zariadenie obsahuje niekoľko dobre vyzerajúcich maticových displejov LED, podsvietenie RGB LED s meniacimi sa farbami, čip na meranie času pri dobíjaní, praktickú jednotku napájania USB a malú skrinku.

Popíšeme blokový diagram činnosti zariadenia podľa častí:

1. Napájací zdroj:

Pretože zariadenie pracuje na 5 V jednosmernom prúde, napájací komponent pozostáva z dvoch samostatných obvodov:

  • Vstup micro -USB - na priamu nabíjačku a napájanie z počítača.
  • 5V lineárny obvod regulátora napätia na báze IC LM7805.

Obvod LM7805 IC je voliteľný, pokiaľ nepreferujete implementáciu odlišnej dostupnosti zdroja napájania. V našom zariadení sa používa napájací zdroj Micro-USB.

2. Mikrokontrolérová jednotka:

Mikrokontrolér ATMEGA328P, funguje ako „mozog“celého zariadenia. Jeho účelom je komunikovať so všetkými periférnymi obvodmi, poskytovať potrebné údaje a používateľské rozhranie ovládacieho zariadenia. Pretože zvolený mikrokontrolér je ATMEGA328P, budeme potrebovať Atmel Studio a základné znalosti jazyka C (Schémy a sekvencie programovania sú popísané v ďalších krokoch).

3. Obvod hodín v reálnom čase:

Druhý najdôležitejší obvod v zariadení. Jeho účelom je poskytnúť údaje o dátume a čase s požiadavkou na ich uloženie bez závislosti na pripojení vstupného napájania, t. J. Časové údaje sa obnovujú v režime v reálnom čase. Aby bol komponent RTC schopný pokračovať v zmene časových údajov, je do obvodu pridaná 3V gombíková batéria. IC je DS1302, jeho činnosť je popísaná v ďalších krokoch.

4. Vstupné rozhranie - tlačidlové prepínače:

Vstupné prepínače PB poskytujú užívateľovi vstupné rozhranie. Tieto prepínače sú spracované v programe definovanom pre MCU a riadiace zariadenie.

5. LED maticový displej

Displej zariadenia sa skladá z dvoch IC alfanumerických LED matíc zabalených do HCMS-2902, každý IC má 4 znaky z 5x7 drobnej LED matice. Tieto displeje sa ľahko používajú, sú podporované 3-vodičovou komunikáciou a sú malé-všetko, čo v tomto projekte potrebujeme.

6. RGB podsvietenie:

Podsvietenie meniace farbu je založené na externých RGB LED diódach, ovládaných signálmi PWM pochádzajúcimi z MCU. V tomto projekte má RGB LED celkom 4 piny: R, G, B a bežné, kde je paleta farieb R, G, B ovládaná pomocou PWM pomocou MCU.

7. Bzučiak:

Obvod bzučiaka sa používa ako zvukový výstup, hlavne na poplachové účely. Prepínač BJT slúži na zaistenie dostatočného prúdu pre komponent bzučiaka, takže jeho hlasitosť bude dostatočne hlasná, aby prebudila živého človeka.

Krok 2: Diely a nástroje

Časti a nástroje
Časti a nástroje

I. Elektronika:

A. Integrované a aktívne komponenty:

  • 1 x ATMEGA328P - MCU
  • 2 x HCMS2902 - displeje AVAGO
  • 1 x DS1302 - RTC
  • 1 x 2N2222A - BJT (NPN)

B. Pasívne komponenty:

  • Rezistory:

    • 5 x 10 tis
    • 1 x 180R
    • 2 x 100R
  • Kondenzátory:

    • 3 x 0,1 uF
    • 1 x 0,47 uF
    • 1 x 100 uF
    • 2 x 22 pF
  • 1 x 4-kolíková RGB LED
  • 1 x bzučiak
  • 1 x 32,768 kHz Kryštál

C. Konektory:

  • 1 x konektor Micro-USB
  • 2 x 6-kolíkový štandardný konektor (100 mil.)
  • 2 x 4-kolíkový štandardný konektor (100 mil.)
  • 1 x puzdro na gombíkovú batériu

D. Rôzne:

  • 3 x SPST tlačidlové prepínače
  • 1 x 3V gombíková batéria.

E. Voliteľný zdroj:

  • 1 x LM7805 - Lineárny regulátor
  • 2 x 0,1uF cap
  • 2 x 100uF cap

II. Mechanický:

  • 1 x plastový kryt
  • 4 x gumové nástavce
  • 1 x prototyp spájkovacej dosky
  • 1 x záhlavie MCU (v prípade poruchy mikrokontroléra)
  • 2 x malé 8 mm skrutky
  • Podložky 2 x 8 mm

III. Nástroje a materiály:

  • Spájkovacie drôty
  • Zmršťovacie trubice
  • Spájkovací cín
  • Spájkovačka
  • Rezačka
  • Kliešť
  • Pinzeta
  • Vŕtačky
  • Súbor malej veľkosti
  • Rôzne skrutkovače
  • Hmatadlo
  • Multimetr
  • Breadboard (voliteľné)
  • Micro USB kábel
  • Stredne veľký súbor
  • Horúca lepiaca pištoľ
  • Programátor AVR ISP

IV. Programovanie:

  • Atmel Studio 6.3 alebo 7.0.
  • ProgISP alebo AVRDude
  • Microsoft Excel (na vytváranie zobrazovaných znakov)

Krok 3: Popis schémy

Popis schémy
Popis schémy

Aby bolo pochopenie činnosti obvodu jednoduchšie, je schematický krok rozdelený do siedmich podskupín. Mali by ste si všimnúť, že názvy sietí sú definované na schematickej stránke a definujú aj spojenia medzi oddelenými pod obvodmi zariadenia.

A. Doska hlavných komponentov:

Ako už bolo spomenuté, všetky vhodné subobvody, ktoré chceme mať „vo vnútri“zariadenia, sú umiestnené na jedinej vyrezanej prototypovej doske. Pokračujme k vysvetleniu činnosti obvodov umiestnených na základnej doske:

1. Obvod mikrokontroléra:

MCU, ktorý sa používa v tomto projekte, je ATMEGA328P. Napájaný je externým 5V zdrojom, v tomto prípade konektorom micro USB. Všetky príslušné I/O piny sú prepojené podľa konštrukčných požiadaviek. Mapovanie portov I/O je ľahko zrozumiteľné, pretože všetky názvy sietí sú definované presne tak, ako sa budú používať v kroku programovania. MCU má jednoduchý RC resetovací obvod, ktorý sa používa buď na programovaciu sekvenciu, alebo na inicializáciu napájania.

Kľúčovou súčasťou MCU je programovací obvod. K dispozícii je 6 -kolíkový programovací konektor - J5, uistite sa, že siete VCC, GND a RESET sú spoločné pre externý programátor ISP a dosku hlavných komponentov.

2. Hodinový obvod v reálnom čase:

Ďalší obvod je hlavnou periférnou súčasťou projektu. DS1302 je integrovaný merací časomer IC, ktorý poskytuje spracované hodnoty času a dátumu našej spracovateľskej jednotke. DS1302 komunikuje s MCU prostredníctvom 3-vodičového rozhrania, podobne ako 3-vodičová SPI komunikácia, na nasledujúcich riadkoch:

  • RTC_SCK (výstup): Vykonáva riadenie a vzorkovanie údajov, ktoré sa prenášajú na linke SDO.
  • RTC_SDO (I/O): Riadiaca linka údajov. Funguje ako vstup do MCU, keď sa prijímajú údaje o čase/dátume, a ako výstup pri prenose údajov (ďalšie vysvetlenie nájdete v kroku Programovanie v základoch).
  • RTC_CE: (Výstup): Linka umožňujúca prenos údajov. Keď je MCU nastavené na HIGH, dáta sú pripravené na prenos/príjem.

DS1302 vyžaduje pre adekvátne správanie sa obvodov externý kryštálový oscilátor 32 768 kHz. Aby sa zabránilo veľkému posunu v systéme počítania obvodov (u týchto typov integrovaných obvodov je jav driftu nevyhnutný), je potrebné na každý kryštálový kolík umiestniť dva kalibračné kondenzátory (pozri časti X1, C8 a C9 v schémach). 22 pF bola optimálna hodnota po mnohých experimentoch s opatreniami na udržanie času v tomto projekte, takže keď sa chystáte obvod úplne spájkovať, uistite sa, že existuje možnosť nahradiť tieto kondenzátory kondenzátormi inými hodnotami. Ale 22 pF pre malú dosku fungovalo celkom dobre pri veľmi malom driftovaní (7 sekúnd za mesiac).

V neposlednom rade súčasť tohto obvodu-3V gombíková batéria by mala byť umiestnená na doske, aby dodávala dostatok energie pre integrovaný obvod DS1302, aby mohol pokračovať v procese počítania času.

4. 8 znakov LED matica:

Zobrazenie zariadenia je založené na 2 x 4 znakových integrovaných obvodoch LED s LED maticou, programovaných pomocou 3-vodičového rozhrania, podobne ako v obvode DS1302 obvodu RTC, s jediným rozdielom, že linka poskytujúca údaje (SDI) je definovaná ako výstup MCU (Ak nechcete pridať možnosť kontroly stavu vášho obvodu displeja). Displeje sú kombinované v sérii 3-vodičového rozšírenia, takže oba integrované obvody fungujú ako jediné zobrazovacie zariadenie, kde je možnosť naprogramovať ho pre definíciu všetkých znakov displeja (pozri kombináciu sérií SPI). Všetky sieťové názvy obvodu zodpovedajú príslušným spojeniam MCU - všimnite si, že existujú bežné siete, ktoré nadväzujú komunikáciu medzi displejmi, a preto nie je potrebné spájať obe komunikačné rozhrania displejov s MCU. Programovanie a postupnosť budovania znakov sú definované v ďalších krokoch.5. Obvod používateľského rozhrania:

Užívateľské rozhranie je rozdelené do dvoch podskupín-Vstupné a výstupné systémy: Vstupný systém: Samotné zariadenie má vstup poskytovaný užívateľom definovaný ako tri tlačidlové prepínače SPST s ďalšími zdvíhacími odpormi, aby bolo možné riadiť definovanú logiku HIGH alebo LOW MCU. Tieto prepínače poskytujú riadiaci systém pre celý naprogramovaný algoritmus, pretože je potrebné upraviť hodnoty času/dátumu, ovládanie ponuky atď.

6. Výstupný systém:

A. Obvod bzučiaka poskytuje zvukový výstup v oboch stavoch, prepnutie ponuky potvrdzuje zvuk a algoritmus alarmu. Tranzistor NPN sa používa ako prepínač, ktorý dodáva bzučiaku dostatok prúdu, takže zvuk znesie vhodnú intenzitu. Bzučiak je ovládaný priamo softvérom MCU. B. RGB LED dióda sa používa ako podsvietenie zariadenia. Ovláda sa priamo pomocou MCU so štyrmi možnosťami výberu podsvietenia: ČERVENÝ, ZELENÝ, MODRÝ, PWM alebo VYPNUTÝ režim. Všimnite si toho, že odpory, ktoré sú sériovo zapojené na piny LED R, G a B, majú rôzne hodnoty, pretože každá farba má inú intenzitu pri konštantnom prúde. Pre zelené a modré LED diódy existujú rovnaké charakteristiky, keď červená má o niečo väčšiu intenzitu. Červená LED je teda pripojená k vyššej hodnote odporu - v tomto prípade: 180 Ohm (pozri vysvetlenie RGB LED). Konektory:

Konektory sú umiestnené na základnej doske, aby bolo možné komunikovať medzi komponentmi externého rozhrania, akými sú: displej, RGB LED, vstupné a tlačidlové prepínače a základná doska. Každý konektor je určený pre iný obvod, takže zložitosť montáže zariadenia dramaticky klesá. Ako vidíte na schémach, každá poradie sieťok konektorov je voliteľné a je možné ich zameniť, ak je proces zapojenia oveľa jednoduchší. Potom, čo sme pokryli všetky koncepty schémy, pristúpime k ďalšiemu kroku.

Krok 4: Spájkovanie

Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie

Pravdepodobne pre niektorých z nás je to najťažší krok v celom projekte. Aby bolo uľahčenie práce zariadenia čo najskôr oveľa jednoduchšie, proces spájkovania by mal byť dokončený v nasledujúcom poradí:

1. Konektor MCU a programovanie: odporúča sa spájkovať 28 -kolíkový konektor namiesto samotného MCU, aby bolo možné v prípade poruchy nahradiť MCU IC. Zaistite, aby bolo možné zariadenie naprogramovať a zapnúť. Na programovací konektor sa odporúča umiestniť nálepku s popisom kolíka (pozri tretí obrázok).

2. Obvod RTC: po spájkovaní všetkých potrebných častí sa uistite, že kalibračné kondenzátory je možné ľahko nahradiť. Ak chcete použiť puzdro na 3V gombíkovú batériu - uistite sa, že zodpovedá rozmerom krytu zariadenia.

3. Displej: Na samostatnú dosku malej veľkosti by mali byť spájkované dva integrované obvody displeja (obr. 1). Po spájkovaní všetkých potrebných sietí je potrebné pripraviť vonkajšie káble (obr. 4): tieto vodiče by mali byť spájkované a vedené na bočnej strane zobrazovacej dosky, všimnite si, že napätie a mechanické napätie pôsobiace na vodiče nebude ovplyvniť spájkovacie spoje na doske displeja.

4. Na vodiče z predchádzajúceho kroku by mali byť umiestnené nálepky so štítkami - to by značne uľahčilo proces montáže v ďalšom kroku. Voliteľný krok: ku každému vodiču pridajte mužský jednopólový konektor (v štýle Arduino).

5. Spájkujte zostávajúce konektory na základnej doske vrátane periférnych komponentov. Ešte raz sa odporúča pre každý konektor umiestniť nálepky s popisom kolíka.

6. Obvod bzučiaka: bzučiak je umiestnený vo vnútri zariadenia, takže by mal byť spájkovaný na základnej doske, prepojovací konektor nie je potrebný.

7. RGB LED: Aby som ušetril miesto na základnej doske, spájkoval som sériové odpory na kolíky LED, kde každý odpor zodpovedá svojej vlastnej zodpovedajúcej farbe a príslušnému kolíku MCU (obr. 5).

Krok 5: Zostavenie

Montáž
Montáž
Montáž
Montáž
Montáž
Montáž

Tento krok definuje vzhľad projektu - elektrický a mechanický. Ak boli vzaté do úvahy všetky odporúčané poznámky, proces montáže je veľmi jednoduchý. Nasledujúca postupná postupnosť poskytuje úplné informácie o procese:

Časť A: Príloha

1. Vyvŕtajte tri otvory podľa priemeru gombíka (v tomto prípade 3 mm). Vyvŕtajte jeden otvor vyhradený pre bzučiak na boku krytu. Je možné použiť ľubovoľný požadovaný priemer vrtáka. Vyvŕtajte malý otvor ako základ na brúsenie podľa konektora USB, ktorý by ste mali použiť (v tomto prípade Micro USB). Potom vykonajte brúsenie so súborom malej veľkosti, aby zodpovedali rozmerom konektora. Vyvŕtajte pomerne veľký otvor ako základ pre brúsenie. Brúsenie vykonávajte so stredne veľkým pilníkom podľa rozmerov displeja. Uistite sa, že sú integrované obvody displeja na vonkajšej strane krytu. Do spodnej časti zariadenia vyvŕtajte stredne veľký otvor podľa priemeru RGB LED. Časť B - Prílohy:

1. Pripájajte dva vodiče ku každému z troch tlačidiel (GND a signál). Odporúčajú sa nálepky so štítkami a jednopólové konektory na vodičoch. Na kolíky RGB LED pripevnite štyri pripravené vodiče. Na spájkované spoje umiestnite nálepky so štítkami a zmršťovacie trubice. Na spodnú časť zariadenia pripevnite štyri gumové nožičky. Časť C - Pripojenie dielov:

1. Umiestnite RGB LED do spodnej časti krytu a zapojte ho do vyhradeného konektora na základnej doske. Pripevnite ho horúcim lepidlom.2. Umiestnite tri tlačidlové prepínače, pripojte ich k vyhradenému konektoru na základnej doske a pripevnite horúcim lepidlom. Umiestnite konektor USB a pripojte ho k kolíkom napájania programovacieho konektora (VCC a GND). Zaistite, aby sa polarita napájacích vedení zhodovala s spájkovanými časťami. Pripevnite ho horúcim lepidlom.4. Umiestnite dosku displeja a pripojte ju k vyhradenému konektoru. Pripevnite ho horúcim lepidlom. Poznámky:

1. Odporúča sa pridať páry matíc a skrutiek k krytu hlavnej dosky a hornému krytu (Ako je to znázornené v tomto prípade).2. Aby sa predišlo zlyhaniu zlomených vodičov, pripojte ich tak, aby sa zohľadnil ich vzhľad vo vnútri krytu.

Krok 6: Stručné úvod do programovania

Stručný úvod do programovania
Stručný úvod do programovania
Stručný úvod do programovania
Stručný úvod do programovania
Stručný úvod do programovania
Stručný úvod do programovania

Keď sú všetky diely spájkované, odporúča sa vykonať počiatočné testovanie zariadenia a až potom pristúpiť k poslednému kroku montáže. Kód MCU je napísaný v jazyku C a ATMEGA328P je naprogramovaný pomocou ľubovoľného programátora ISP (Existujú rôzne typy programovacích zariadení Atmel: AVR MKII, AVR DRAGON atď. - Použil som lacný programátor USB ISP z eBay, ktorý je ovládaný softvérom ProgISP alebo AVRDude). Programovacie prostredie musí byť Atmel Studio 4 a vyššie (dôrazne odporúčam najnovšie verzie softvéru). Ak sa používa externý programátor, ktorý nie je vlastný programu Atmel Studio, je potrebné zadať cestu k súboru.hex programovaciemu softvéru (zvyčajne sa nachádza v priečinku Debug alebo Release projektu). Uistite sa, že pred krokom montáže je možné zariadenie naprogramovať a všetky základné procesy vytvárania a kompilácie vyhradených projektov AVR sú založené na mikrokontroléri ATMEGA328P (pozri návod Atmel Studio).

Krok 7: Popis kódu

Popis kódu
Popis kódu
Popis kódu
Popis kódu

Algoritmus rozhodovacieho kódu je vrstvený do dvoch polovičných oddelených vrstiev: 1. Základná vrstva: Komunikácia s periférnymi obvodmi, definícia operácií zariadenia, inicializácia a deklarácie komponentov. Úroveň rozhrania: Interakcia používateľ-zariadenie, funkčnosť ponuky, hodiny/bzučiak/farba/alarm. Postup programu je popísaný na obrázku. 1, kde každý blok zodpovedá stavu MCU. Popísaný program funguje ako základný „operačný systém“, ktorý poskytuje rozhranie medzi hardvérom a vonkajším svetom. Nasledujúce vysvetlenie popisuje základnú činnosť programu podľa častí: Časť A: Základná vrstva:

1. Inicializácia I/O MCU: V prvom rade je potrebné inicializovať hardvérové komponenty:- Konštanty používané kódom.- Porty I/O- Rozhranie.- Deklarácie periférnej komunikácie.

2. Základné všeobecné funkcie: Niektoré funkcie sú používané samostatnými kódovými blokmi, definujú operácie na kolíkoch, ktoré sú riadené softvérom:- Zapnutie/vypnutie komunikácie RTC a zobrazovacej dosky.- Zapnutie/vypnutie generovania zvuku bzučiakom.- 3-drôtové hodiny funkcie hore/dole.- Zobrazenie funkcií vytvárania znakov. Inicializácia periférnych zariadení: Po nakonfigurovaní vstupno -výstupných portov prebieha definícia funkcií medzi obvodmi. Po dokončení - MCU začne inicializáciu obvodov RTC a displeja pomocou funkcií, ktoré boli definované vyššie.

4. Definícia základných funkcií: V tejto fáze je zariadenie nastavené a pripravené na komunikáciu s niektorými periférnymi obvodmi. Tieto funkcie definujú:- Prepínač prepínania prepínačov- Prevádzka RGB LED (obzvlášť PWM)- Bzučiakový generátor štvorcových vĺn

5. Funkcie zobrazenia: Na internete som nenašiel veľa informácií o integrovaných obvodoch HSMS, ktoré som použil, a preto som napísal vlastnú knižnicu. Funkcie zobrazenia poskytujú úplnú funkciu zobrazovania znakov vrátane zobrazenia znakov ASCII a akýchkoľvek celých čísel. Funkcie sú zapísané zovšeobecneným spôsobom, takže ak je potrebné vyvolať zobrazovacie funkcie z ktorejkoľvek časti kódu, je ľahké ich použiť, pretože sú zovšeobecnené operáciou (napríklad: zobrazenie reťazcov, zobrazenie jedného znaku atď.).

6. Prevádzkové funkcie RTC: Všetky funkcie RTC sú zapísané zovšeobecnene (podobne ako sada funkcií displeja) podľa činnosti DS1302 IC. Kód je založený na písomnej knižnici, ktorá je na gitHub k dispozícii v mnohých variantoch. Ako uvidíte v konečnom kóde, sada funkcií a funkcií RTC je zahrnutá v samostatných súboroch.c a.h. Časť B - Vrstva rozhrania:

1. Hlavná funkcia: v sekcii void main () je deklarácia všetkých základných inicializačných funkcií. Hneď po inicializácii všetkých komponentov MCU vstupuje do nekonečnej slučky, kde je funkčnosť zariadenia riadená užívateľom.

2. Prepínače v reálnom čase, podsvietenie a ovládanie displeja: Keď beží v nekonečnej slučke, MCU vykonáva obnovenie v každej časti zariadenia. Vyberá, aké údaje sa majú zobrazovať, ktoré tlačidlo bolo stlačené a aký režim podsvietenia bol zvolený.

3. Funkcie používateľského menu: Tieto funkcie majú stromový tvar (pozri obr. X), kde je systém ponúk a hierarchia definovaná ako stavový automat. Každý stavový stroj ovládaný vstupom užívateľa - tlačidlo sa prepne, teda keď bolo stlačené príslušné tlačidlo - stavový automat zmení svoju hodnotu. Je navrhnutý tak, aby sa všetky zmeny v zariadení vykonané v ponuke okamžite zmenili.

4. Prepínanie používateľských ponúk: keď je k dispozícii vstup užívateľa, stav ponuky musí zmeniť svoj stav. Tieto funkcie teda poskytujú užívateľovi závislú kontrolu nad stavovým strojom. V tomto konkrétnom prípade: nasledujúci, predchádzajúci a OK.

Krok 8: Konečný kód a užitočné súbory

A je to! V tomto kroku nájdete všetky potrebné súbory:- Elektrická schéma- Kompletný zdrojový kód- Zobrazovač na tvorbu znakov Voliteľná funkcia: K dispozícii je množstvo znakov, ktoré je možné zobraziť v knižnici integrovaných obvodov displeja, niektoré však nie sú súčasťou balenia.. Ak chcete vytvárať znaky sami, pridajte vo funkcii Print_Character ('') stav prípadu s referenciou ASCII (pozrite si funkcie display.c). Dúfam, že vám tento návod bude užitočný:) Ďakujeme za prečítanie!

Odporúča: