C-bibliotek för HD44780 LCD uppvisning Controller (2 / 4 steg)

Steg 2: Hur du skriver ut på en specifik markörens Position



Låt oss fortsätta med granska kodexemplen hd44780 LCD bibliotek. Se föregående inlägg för länkar till källkoden och en förklaring av vad vi arbetar med.

Nu ska vi titta på nästa kodexempel:

CursorPosition.c

Anmärkning: I ovanstående bild är de rader som börjar med '0' och '1' fodra en.
Rader som börjar med '2' och '3' är linje två.

Skärmen jag har är en ERM2004-1. Den stöder två 40 tecken raderna upp över 4 20 tecken linjer på displayen.

Om du inte gjort det, se de sista inlägg, för koden databasen länken och ladda ner källkoden så du kan följa med.

Vi kommer att visa hela kodexemplet och sedan diskutera koden sektionsvis.

#include
#include "hd44780_4bit_lib.h"
/*
* Denna kodexempel används hd44780_setCursorPosition() functioh
* ställa markören startpositionen med row, information i Tullkontorslistan
* Denna markör info sedan skrivs till adressen DDRAM.
* Med den här metoden är det mycket lätt att p text på dissplay
*/
void main)
{
WDTCTL = WDTPW | WDTHOLD; Inaktivera watchdog-timer
Enligt spec ge displayen 10ms komma till spänning
__delay_cycles(10000 * CPUSPEED);
ställa in datalängd, antal linjer och teckensnitt
märker vi har setup Visa för 2 rader och
med 5 x 8 tecken storleksanpassar
hd44780_init (N_2LINE, FONT_8);
om behövs ställa in markören
hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR);
hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR_BLINK);
hd44780_send_command(HD44780_CMD_RETURN_HOME);
hd44780_send_command(HD44780_CMD_CLEAR_DISPLAY);
ställa in Increment riktning och markören riktning
hd44780_send_command(HD44780_CMD_INCREMENT);
hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT);
hd44780_send_command(HD44780_CMD_RETURN_HOME);
hd44780_send_command(HD44780_CMD_CLEAR_DISPLAY);
Jag testar med displayen är en två linje 40 teckens display
Displayen visar 20 tecken per rad så att varje rad sveper två gånger
för något som liknar en 4 rad display.
På raden en om du skriver förbi 20 karaktären texten
dyker upp på vad som visas
att vara den tredje raden.
Samma sak gäller för den andra raden, vilket tidigare tecken på
20 tecken skrivs
till vad som verkar vara den fjärde raden.
//
hd44780_setCursorPosition (0, 0);
hd44780_write_string("0123456789");
hd44780_setCursorPosition (0, 10);
hd44780_write_string("0123456789");
hd44780_setCursorPosition (0, 20);
hd44780_write_string("11234567890123456789");
hd44780_setCursorPosition (1, 0);
hd44780_write_string("21234567890123456789");
hd44780_setCursorPosition (1, 20);
hd44780_write_string("31234567890123456789");
hd44780_send_command(HD44780_CMD_RETURN_HOME);
}

Den första delen av koden förklaras i avsnittet ovan.

Funktionen hd44780_send_command() ställer in hd44780 gränssnittet att skicka kommandon till IR, instruktion register. Dessa kommandon bara starta display för att skriva.

Om du är intresserad, se hd4780 specifikationen för detaljer. Se föregående inlägg för en länk för specifikationen.

hd44780_setCursorPosition (0, 0);
hd44780_write_string("0123456789");

hd44780_setCursorPosition (0, 10);
hd44780_write_string("0123456789");

hd44780_setCursorPosition (0, 20);
hd44780_write_string("11234567890123456789");

hd44780_setCursorPosition (1, 0);
hd44780_write_string("21234567890123456789");

hd44780_setCursorPosition (1, 20);
hd44780_write_string("31234567890123456789");

hd44780_send_command(HD44780_CMD_RETURN_HOME);

Funktionen hd44780_setCursorPosition() appeller en instruktion, kallas "ställa in DDRAM adress"
Argument som gått uppsättning upp linjen och markörposition så att nästa gång data skickas till displayen, att data placeras på rätt plats.

Funktionen hd44780_write_string() tar passerade strängen och skriver ut ett tecken i taget till startplatsen anges av funktionen hd44780_setCursorPosition(). Räknaren AC adress fungerar det magi så du inte behöver oroa dig öka eller minska markörens position.

Se Steg
Relaterade Ämnen

HD44780 LCD till I2C adapter styrelsen för buss pirat

billigt tecken LCD-skärmar baserat på HD44780 chipset kommer i olika storlekar: 2 x 16, 4 x 20, etc. Dessa skärmar har två standardgränssnitt lägen, 4 och 8 bitars parallellt. 8 bitar kräver sammanlagt 11 data linjer, 4 bitar kräver 7 (6 för lässkydd...

Arduino Nano: BMP180 barometertryck och temperatur I2C 2 X 16 LCD uppvisning med Visuino

BMP180 är en mycket populär temperatur och barometriskt tryck Arduino kombinationsgivaren. Jag har redan gjort Instuctable med BMP180. Ett antal människor frågade men hur du kan ansluta en annan I2C enhet till samma I2C buss som BMP180. Äntligen har...

Arduino Nano: Ultraljud Ranger(Ping) avstånd I2C 2 X 16 LCD uppvisning med Visuino

I detta Instructable kommer jag visa dig hur lätt det är att ansluta Ultrasonic Sensor till Arduino och visas avståndet på en LCD-Display.Observera att anteckningen på några av bilderna i detta Instructable kommer att fungera korrekt på vissa webbläs...

Arduino Nano: Direkt anslutning 2 X 16 LCD uppvisning med Visuino

Tecken LCD-skärmar är en mycket vanligt förekommande för Arduino projekt, att Visa små mängder av textinformation. De vanligaste typerna är de grundläggande direkt anslutna skärmarna och de med I2C adapter. Jag har redan postat Instructable på hur ti...

Arduino Nano: I2C 2 X 16 LCD uppvisning med Visuino

Tecken LCD-skärmar är en mycket vanligt förekommande för Arduino projekt, att Visa små mängder av textinformation. De vanligaste typerna är de grundläggande direkt anslutna skärmarna och de med I2C adapter. Den I2C versionen är dyrare men behöver bar...

Arduino Nano: DHT11 temperatur en luftfuktighet I2C 2 X 16 LCD uppvisning med Visuino

Jag har redan gjort två Instructables om hur du använder DTH11/DTH21/DTH22 och AM2301 temperatur och luftfuktighet med Arduino, och du hittar dem här och här. Jag gjorde också Instructable om hur du använder I2C LCD-teckens Display, och en om hur man...

Hur man använder en 16 X 2 LCD uppvisning med en Arduino, TI Launchpad eller breadboarded MSP430

i den här videon instructable jag visa hur man koppla ett billigt 16 X 2 LCD-skärm upp till en Arduino, då en TI Launchpad MSP430 kör Energia, sedan en breadboarded MSP430.Dessa skärmar är billiga - jag fick min för $2.26 levereras på eBay. De endast...

Arduino ultraljud avståndsmätare med I²C lcd uppvisning!

Heji detta projekt vill jag Visa och förklara du en rad sensor med ultraljud och en 20 x 04 LCD-skärm. Jag skrev koden för detta projekt själv och lade till massor av kommentarer, så att alla kan förstå det och använda det för andra projekt (kanske e...

Ultimate Sensor Box W/LCD uppvisning och webbgränssnitt

Några vänner och jag köpte några otroligt hög slut i7 och ville se vad vi kunde få ut av en dubbel processor setup med nedsänkning kylning. Vi gick lite överbord och köpte en gallon 3M Novec 7000 kyla vätska för $300 dollar. Det är galna icke-giftiga...

Hur du använder en Nokia 5110 84 X 48 LCD uppvisning med din Arduino (det är enkel och billig!)

Det är billigt och enkelt att lägga till en 84 X 48 LCD till din Arduino projekt. Dessa Nokia 5110 är överskottet från Nokiatelefoner av de sena 90-tal. Tech är gamla, gör det en fantastisk bakgrundsbelyst display för din Arduino projekt. Det finns m...

En helautomatisk kaffe bean Kafferostningsföretagen (Arduino)

jag fick in i världen av Arduino när två vänner informerade mig om denna lilla enhet självständigt från varandra. Jag läste om det och såldes omedelbart. Tänk om jag hade det så många år sedan, hur mycket skulle jag ha uppfunnit redan, vad skulle jag...

Seriella I2C HD44780 kompatibel LCD för ATTINY85

Detta instructable visar dig hur du använder en LCD och I2C modul för att visa data från en ATTINY85. Avsikten med schematiskt ovanför att Visa anslutningen behövs för att visa data. Observera att pull-up motstånd behövs för I2C-modulen.Steg 1: Ändra...

I2C LCD-Controller (det enkla sättet)

jag arbetar på ett larm/weather station projekt och jag ville använda en LCD men dint vill ha en massa sladdar så jag beställer en controller. Detta är bara en mycket grundläggande handledning om hur man kan koppla in, den för nybörjare som mig själv...

Arduino I2C LCD-chaufför bibliotek och PackMan

Detta projekt är en omfattande Arduino port av en tidigare Instructable som finns här;Som hette snappily..."Microchip PIC bibliotek att styra en 20 av 4 LCD över I2C"Det är min första gå på att skriva en C++-bibliotek för Arduino så ber om ursäk...

Arduino Temp/fukt med LCD och webbgränssnitt

jag nyligen hjälpt en kund flyttar sitt kontor som inkluderade att inrätta ett nytt datorrum.Jag ville ha dem för att kunna kontrollera temperaturen och luftfuktigheten i rummet både genom att kontrollera en LCD-display i rummet och även via en webbs...

Mini Arduino Multi funktion styrenhet med LCD-skärm

detta Instructable bygger på mini Arduino miljö monitor och mini Arduino EEGEN monitor Instructables.Det kan du styra upp till 4 reläer med tid, temperatur och/eller ljus, ditt sinne, eller vilken sensor du vill använda.Exemplen är prototyper, jag gå...

Montering en Arduino Nano / LCD projekt plattform

Den "Arduino Nano / 1.8" TFT LCD projekt plattform "består av en 3D tryckta fall att wraps en anpassade utformade PCB som är monterad en Arduino Nano, en 1.8" TFT LCD med en SD-kortläsare och tre tryckknappar som är utsatta på framsida...

Linkit en - vattennivån Controller med TV Fjärrinställningar

Jag redan gjort en vattennivån controller och postat här se länken korrekt flytande nivå Controller med låg kostnad sensor och TV: ns fjärrkontroll för inställningar. Nu dess fungerar bra och jag använder det online. Ändra det till Linkit en att lära...

3-tråds HD47780 LCD för mindre än 1 dollar

i detta instructible vi kommer lära oss hur vi kan koppla in en LCD baserad på HD44780 chipset till SPI bussen och köra det med endast 3 trådar för mindre än $1. Även om jag kommer att fokusera på HD44780 alfanumeriska displayen i denna tutorial, sam...