Elektronika, ukázky pro STM8S103F3, plus programování v assembleru.


TM-1638 ovládací panel

osmimístný sedmisegmentový displej, osm led diod a osm tlačítek

TM1638

Panel obsahuje osmimístný sedmisegmentový displej, osm led diod a osm tlačítek. Komunikace probíhá pomocí tří vodičů, DIO, CLK a STROBE. Ovládání displeje je velmi podobné TM1637. Navíc je zde rosvěcování a zhasínání led diod a čtení tlačítek. Stav tlačítek se ukládá do jednoho byte, kde jednotlivá tlačítka určují jednotlivé bity (tlačítko 1 až 8 => bity 7 - 0).
Pozice číslic a led diod je určena řídícím byte 0xC0 až 0xCF. Sudé čísla (0xC0, 0xC2, 0xC4...) určují pozici číslice a liché (0xC1, 0xC3, 0xC5...) pořadí ledky.

Níže uvedený kód obsahuje základní funkce pro TM1638:
  • Inicializace init TM1638 v setup části kódu, nastavení GPIO (clk, dio, stb)
  • procedura zapni, zapne displej a nastaví jas - 0x88 až 0x8F, 0x80 - displej vypne
  • procedura clear, zhasne displej a všechny ledky
  • procedura zobraz1, zobrazí znak v akumulátoru A na pozici registru YL
  • procedura zobraz, zobrazí znaky z adresy v registru X od pozice v registru YL, po ukončovací znak (0x8A), nebo osm znaků pokud na ukončovací znak nenarazí
  • procedura precti, přečte stav tlačítek do proměnné tlacitka
  • procedura ledky, rozsvítí, nebo zhasne ledku, podle jednotlivých bitů a akumulátoru A

V této ukázce je panel připojený k portu D, piny 2,3 a 4 (CLK, DIO, STROBE). Podle potřeby jdou samozřejmě připojit k jiným. Rychlost CPU je zde nastavená na 2 MHz. Pokud by byla požadována rychlost vyšší, až 16 MHz, možná bude třeba upravit zpožďovací proceduru zpozdeni. Na konci souboru je i definice segmentů pro číslice i další znaky abecedy v rámci možností sedmisegmentového displeje.
Ukázka zobrazí číslice 12345678 a pak v nekonečné smyčce čte tlačítka a podle stisknutého rozsvítí led. Další podrobnosti viz poznámky ve zdrojáku.


všeobecné informace

Všechny zde uváděné zdrojáky mají stejnou strukturu, jsou vytvořeny podle stejné šablony. Na prvním řádku každého zdrojáku musí být direktiva stm8/, jinak překlad skončí chybou. Program má inicializační část (SETUP), kde je nastaven vrchol zásobníku, je vynulována paměť ram, nastaví se rychlost CPU a proběhne základní nastavení použitého hardware, například UART, CPI, I2C, GPIO, atd. Vyhrazené piny pro UART, SPI, I2C a analogy jsou v této tabulce:
STM8S103F3P6

určení jednotlivých pinů
Napájení5V, 3V3 a zem GND
GPIOvšechny piny An, Bn, Cn, Dn
UARTTX=pin D5, RX=pin D6
SPIMISO=pin C7, MOSI=pin C6, SCK=C5, CS/SS=pin A3
I2CSCL=pin B4, SDA=pin B5
ANALOGA0=pin C4, A1=pin D2, A2=pin D3, A3=pin D5, A4=pin D6
ST-LINKpiny pro programátor SWIM a NRST

V nekonečné smyčce (LOOP) se pak provádi samotná činnost. Úplně na konci je tabulka vektorů přerušení v segmentu vectit s popisy, které zařízení může přerušení vyvolat.
U modulů, které jsem v rámci svých možností odladil a otestoval, jsem vytvořil prográmek, který lze formou copy-paste vytáhnout (buď celý, nebo pouze potřebné kusy kódu) a použít jej v nějaké Vaší aplikaci. Zkopírovat se musí potřebný kód, proměnné v paměti a deklarace konstant (equ).

Na stránkách výrobce ST Microelectronics je ke stažení vývojové prostředí ST Visual develop, utilita ST Visual Programmer a dále jsou zde velmí podrobné manuály v PDF (v angličtině) odledně popisu mikrokontroléru a jeho instrukčního souboru.

Dúležité upozornění: Zde presentovaný modul mikrokontroléru má výstupy 5V, 3V3 a GND. Na výstupu 5V ve skutečnosti není 5 voltů, ale vstupní napětí, kterým celý tento modul napájíte, buď přes piny +/-, nebo přes konektor mikroUSB, což může být 4.5 - 15V. Buďte opatrní, co k tomu pinu (5V) připojíte, připojovaný modul můžete tímto zničit. Doporučuji modul napájet výhradně z 5V zdroje.

Vzkazník - dotazy, názory, připominky, hlášení chyb, atd:
případný E-mail nebude nikde zveřejněn, uveďte jej, pouze pokud si přejete odpověď.

Elektronika, ukázky pro Arduino a STM8, plus programování v Delphi (Lazarusu).
Všechna zapojení modulů v ukázkách (viz elektrická schémata) pracují s velmi malým napětím 3.3V až 12V a neobsahují návod na napájecí zdroj. Pokud se rozhodnete některé z těchto zařízení postavit, důrazně doporučuji používat zdroje s výstupním napětím maximálně 12V, podle schválených norem platných v ČR. Autor návodů za případné škody nepřebírá žádnou odpovědnost.
nahoru
tyto stránky jsou provozovány jako hobby, bez reklam a bez sběru osobních dat (c) 2026 iisivak.xf.cz