C Library for HD44780 LCD Display Controller (3 / 4 stap)

Stap 3: Hoe om te lezen van het scherm


readDDRAM.c

Deze weergave lijkt niet veel, maar neem een kijkje op wat er echt gebeurt.
Eerst schrijven we wat tekst naar het display, waarna we de beginpositie van de AC, adres teller reset en lezen van de tekens die zijn geschreven.

Dan schrijven we de tekens die zijn gelezen terug aan de weergave.

Laten we de code:

 #include #include "hd44780_4bit_lib.h" #include /* * This code example show how to read text from DDRAM, * in this example we will write some text to the display * then read the text and then write the read text * back to the display. */void main() { WDTCTL = WDTPW | WDTHOLD; // Disable watchdog timer uint8_t rtn = 0; uint8_t readStr[80]; uint8_t *pint; unsigned int cnt = 0; unsigned int charCnt = 0; // according to spec give the display 10ms to come up to voltage __delay_cycles(10000 * CPUSPEED); // set up data length, number of lines and font // notice we have setup the display for 2 lines // and using the 5 x 8 character size hd44780_init(N_2LINE, FONT_8); // turn display on and clear the display // and set cursor to home position 0x00 // hd44780_send_command(HD44780_CMD_DISPLAY_ON); // hd44780_send_command(HD44780_CMD_RETURN_HOME); // hd44780_send_command(HD44780_CMD_CLEAR_DISPLAY); hd44780_setCursorPosition(0, 0); hd44780_write_string("this"); hd44780_setCursorPosition(0, 0); pint = readStr; // reads characters from display while(1) { rtn = hd44780_readByte(); if (rtn == ' ') { break; } *pint = rtn; pint++; charCnt++; } // writes read characters back to display for(cnt = 0; cnt < charCnt; cnt++) { hd44780_write_special_char(readStr[cnt]); } hd44780_send_command(HD44780_CMD_RETURN_HOME); } 

Laten we breken van de code en zien wat er gaande is:

 uint8_t rtn = 0;uint8_t readStr[80]; uint8_t *pint; unsigned int cnt = 0; unsigned int charCnt = 0;// according to spec give the display 10ms to come up to voltage __delay_cycles(10000 * CPUSPEED);// set up data length, number of lines and font // notice we have setup the display for 2 lines // and using the 5 x 8 character size hd44780_init(N_2LINE, FONT_8); 

Eerste instellen off we sommige variabelen die we tijdens de lezing en het schrijven van de personages geëxtraheerd uit het display gebruiken kunnen.
Bericht die zijn we de weergave voor 2 lijnen en 5 x 8 teken dot patroon instellen.

 hd44780_setCursorPosition(0, 0); hd44780_write_string("this"); hd44780_setCursorPosition(0, 0); pint = readStr; // reads characters from display while(1) { rtn = hd44780_readByte(); if (rtn == ' ') { break; } *pint = rtn; pint++; charCnt++; } 

We nu de cursorpositie ingesteld op het display naar de rij 0, kolom 0 en schrijf de tekst naar het display.
Wij opstelling een pointer naar de readStr array. Nu doorlopen we de DDRAM, grijpen een teken tegelijk en het plaatsen van het teken in de array.

Als de volgende teken ontvangen is ' ', we dan aannemen dat geen meer tekens bevat, en we de lus te sluiten.

Dit is slechts een voorbeeld, als u verwacht een aantal woorden dat dan uw logica worden een beetje complexer moet, zoals het doorlopen van de gehele lijn, een eenvoudig vast te stellen.

 // writes read characters back to display for(cnt = 0; cnt < charCnt; cnt++) { hd44780_write_special_char(readStr[cnt]); } hd44780_send_command(HD44780_CMD_RETURN_HOME); 

Aangezien de cursorpositie wordt bijgehouden door de AC, adres teller, zit onze cursor al op een locatie na de gelezen tekst. Alles wat we moeten doen is lezen van de tekens uit de matrix en hen tegelijkertijd terug naar het scherm weer te geven.

Gerelateerde Artikelen

Mini Arduino Multi functie Controller w / LCD Display

Mini Arduino Multi functie Controller w / LCD Display

dit Instructable bouwt voort op de Arduino omgeving minimonitor en Arduino EEG minimonitor Instructables.U kunt maximaal 4 Relais met behulp van de tijd, temperatuur en/of licht, je geest, controle of welke sensor u wilt gebruiken.De voorbeelden zijn
Douche Monitor Arduino met LCD display

Douche Monitor Arduino met LCD display

Welkom! Voor onze milieu Capstone klasse (senior proefschrift) voor St. Olaf College bouwden we een monitor die doeltreffend op hoeveel water toezien zou maakt gebruik van een douche. Het idee achter deze water-monitor is dat als u een piezo transduc
Het gebruik van de LCD-display met arduino tutorial

Het gebruik van de LCD-display met arduino tutorial

Hi iedereen hoop u zijn prima :)Vandaag display i'am gaan om je te leren hoe met een LCD met Arduino (gewoon een hel wereld-bericht).Als u een beginner bent of je nog nooit gespeeld met LCD vertoning met Arduino voordat, dit instructable zeker voor u
HD44780 LCD aan I2C adapter board voor de Bus Pirate

HD44780 LCD aan I2C adapter board voor de Bus Pirate

goedkoop karakter LCD's gebaseerd op de chipset van de HD44780 komen in een verscheidenheid van soorten en maten: 2 x 16, 4 x 20, enz. Deze schermen hebben twee modi van de standaard interface, 4 bits en 8 bits parallelle. 8 bit vereist een totaal va
Connect A 16 x 2 LCD Display aan een Arduino

Connect A 16 x 2 LCD Display aan een Arduino

Welkom bij mijn eerste instructable,Ik zal u tonen hoe u een 16 x 2 LCD-scherm verbinding met een arduino,Volg deze eenvoudige stap voor stap instructies en zul je het gedaan in geen tijd :)Stap 1: Verzamel alle Items die u nodig hebt :) u het volgen
Arduino Nano: Toon GPS-locatie op I2C 2 X 16 LCD Display met Visuino

Arduino Nano: Toon GPS-locatie op I2C 2 X 16 LCD Display met Visuino

Paar dagen geleden vroeg iemand me te maken Instructable over hoe om te laten zien van GPS, lengte- en breedtegraad op een LCD-Display. Ik beloofd een te maken, en hier is het.In dit Instructable, zal ik u tonen hoe u seriële GPS Module, en I2C LCD D
Netduino GPS met LCD Display

Netduino GPS met LCD Display

OverzichtIk vond een ongebruikte Netduino V1 kaartje in mijn vak delen dus wilde iets die kon ik draag het te vinden. Het was al aangesloten op een Nokia 5110 LCD display voor een eerder onvoltooide project. Het omhoog het aandrijven, vond ik dat bei
DIY I2C LCD Display met ingangen

DIY I2C LCD Display met ingangen

De typische parallelle LCD gebruikt met een Arduino (16 x 2 of 20 x 4) heeft 16 pinnen. Slechts 6 I/O pinnen zijn vereist op de Arduino, maar wat als je kon krijgen dat tot twee I/O pinnen, en nog steeds hebben die pins beschikbaar voor andere appara
Nodemcu devkit (esp8266) weergave temperatuur op een i2c lcd display

Nodemcu devkit (esp8266) weergave temperatuur op een i2c lcd display

In dit Instructable zal ik laten zien hoe ik de installatie van een esp8266 om te bepalen van een i2c 20 x 4 LCD-scherm weer te geven gegevens uit verschillende bronnen die is verzameld door andere apparaten esp8266 rond mijn huis.Ik begon door het v
LCD Display-beschermfolie

LCD Display-beschermfolie

Eenvoudige en goedkope LCD-scherm beschermfolieHeb je vingerafdrukken op uw beeldscherm? -Dan is dit de oplossing voor u!Stap 1: Oplossing 1: gebruik een zelfklevende folie Oplossing 1: gebruik een zelfklevende folieOpmerking: Controleer ook oplossin
DHT11 vochtigheid sensor met een lcd-display gemakkelijk!!!

DHT11 vochtigheid sensor met een lcd-display gemakkelijk!!!

Hallo, jongens vandaag gaan we vochtigheid sensor DHT11 werk met een LCD-scherm.Het is niet moeilijk voor een beginner net bedrading dat de LCD display is het harde deel.Dus laten we beginnen:):):):):):):):)!Stap 1: Verzamel uw lichaamsdelen U moet:1
Arduino Nano 5110 LCD Display DHT11 temperatuur vochtigheid Sensor

Arduino Nano 5110 LCD Display DHT11 temperatuur vochtigheid Sensor

Arduino Nano 5110 LCD Display DHT11 temperatuur vochtigheid sensorYouTube VideoDocumenten
Arduino Nano: Direct 2 X 16 LCD Display met Visuino

Arduino Nano: Direct 2 X 16 LCD Display met Visuino

Karakter LCD-schermen zijn een zeer veel gebruikte voor Arduino projecten, om kleine hoeveelheden tekstuele informatie te geven. De meest voorkomende zijn de fundamentele rechtstreeks aangesloten beeldschermen en degene met I2C adapter. Ik heb al gep
Hoe te repareren van multimeter lcd display zwarte vlek

Hoe te repareren van multimeter lcd display zwarte vlek

Wanneer uw multimeter bloot aan vocht, zonlicht of leeftijd. Het LCD-scherm zal degraderen langzaam en tot slot laat zwarte vlek (of grote) op het LCD-display. Maar u niet ongerust maken moet, kunt u deze herstellen zonder te betalen geen geld.Stap 1