Pred časom sem imel problem, kako več LCD-jev vezati na en mikrokontroler. Ko sem zadevo tuhtal, je bilo odprtih več različnih možnosti. Od tega, da je vsak LCD na svojem portu – kar pomeni za 4 LCD-je tudi 4 porte. Do tega, da bi uporabil 4 manjše mikrokontrolerje. Nobeden od navedenih načinov pa ni ekonomsko pa tudi tehnično upravičen. Pred časom mi je kolega Vlado pokazal Bascom program za krmiljenje LCD-ja preko SPI vodila. Program je vključeval tudi posebno knjižnico.
Zelo sem bil vesel tega primera, ker je za priklop LCD-ja porabil samo 3 priključke. Četrti priključek sem namenil krmiljenju osvetlitve LCD-ja. Ko sem naredil prototipno vezje in ga preizkusil, je vezje takoj delovalo. Ob tem sem se spomnil problema krmiljenja več LCD-jev z enim mikrokontrolerjem. Krmiljenje več LCD-je preko SPI bi bilo idealno, vendar se je kot že tolikokrat izkazalo, da ni vse enostavno, kot izgleda na prvi pogled. Namreč SPI-LCD knjižnica je bila narejena tako, da je delovala samo z enim LCD-jem. Torej se bo potrebno lotiti spremembe knjižnice, za kar je asembler pravo orodje.
Predelava knjižnice mi je vzela nekaj časa, saj nisem vsakodnevni programer AVR-jev v asemblerju. Bistvo predelave knjižnice je bilo v tem, da sem moral konstanto, ki je bila uporabljeni v knjižnici, spremeniti v spremenljivko, katero določam v Bascom programu. Ne bom zahajal v podrobnosti sprememb knjižnice, ker to ni namen tega članka. Rajši si poglejte vezavo LCD-ja.
Več LCD-jev na enem SPI vodilu