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

Stap 1: Hoe om af te drukken van speciale tekens


SpecialCharacters.c

Kijk over de onderstaande code en we zullen onderzoeken

Boven is een screenshot van de steekproef code die wordt uitgevoerd op het display:

Let op de lijn door de 5 x 10 tekens. Mijn scherm is een ERM2004-1

Kijken naar de specificatie de onder karakter detail, misschien een verklaring voor deze regel. Maar ik kan niet zeggen zeker als documentatie beperkt is.

 #include #include "hd44780_4bit_lib.h"/* * This code example uses 5 x 10 character and one line * to display the special characters show in table 4, ROM Code A00 * in the hd44780 specification. * Note using the 5 x 10 characters you can only write to one line on * the display. * */void main() { WDTCTL = WDTPW | WDTHOLD; // Disable watchdog timer // 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 // Note 1 line and 5 x 10 characters hd44780_init(N_1LINE, FONT_10); // if needed set up the cursor and blink // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR); // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR_BLINK); // set Increment direction and cursor direction hd44780_send_command(HD44780_CMD_INCREMENT); hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT); // refer to table 4 ROM Code AOO // on how to convert upper 4 bits and // lower 4 bits to formulate the below characters hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); // this character and the next // character takes up the full // 10 dots in height to print the // decending j and g hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB);} 

Laat de code breken en analyseren het regel voor regel:

 // 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 // Note 1 line and 5 x 10 characters hd44780_init(N_1LINE, FONT_10); 

De __delay_cycles() functie pauzeert 10 milliseconden zodat de spanning van de display om te komen tot operationele bereik. Neem een kijkje op het hd44780_4bit_lib.h-bestand. Er zijn sommige CPU snelheid verwante constanten die zijn gedefinieerd voor gebruik met de __delay_cycles() functie.
Opmerking: __delay_cycles() functie kan pas constanten als argument zodat u kunt een variabele met deze functie niet gebruiken.

De hd44780_init() functie initialiseert het display en argumenten kunnen worden doorgegeven om vast te stellen aantal lijnen en de tekengrootte. Deze functie stelt ook de hd44780 interface 4 bit bewerking gebruiken in plaats van 8 bit operatie. Controleer de specificatie voor details.

 // if needed set up the cursor and blink // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR); // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR_BLINK); // set Increment direction and cursor direction hd44780_send_command(HD44780_CMD_INCREMENT); hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT); 

De hd44780_send_command() functie wordt gebruikt om opdrachten te verzenden naar de hd44780-interface. De hd44780 kan zowel opdrachten en gegevens. Door het veranderen van sommige stukjes in de MPU-interface kunt u ofwel het verzenden van gegevens of instructies.
Zo in dit volgende voorbeeld, als we un-commentaar van de twee lijnen we kunnen een cursor worden weergegeven en of de cursor knipperen.

Zie de verwijzing naar de RS registreren Selector-bit, RS en de RW, beetje lezen schrijven voor meer informatie als u geïnteresseerd bent.

Een van de leuke dingen die je met de hd44780 interface doen kunt is bepalen of u wilt gegevens schrijven van links naar rechts of van rechts naar links. Deze instellingen bepalen deze volgende twee commando's. We kunnen verhogen of verlagen van de cursor verplaatsen richting, en verplaats de cursor naar links of rechts wanneer gegevens worden verzonden naar het display.

 // refer to table 4 ROM Code AOO // on how to convert upper 4 bits and // lower 4 bits to formulate the below characters hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); 

Er is een tabel in de specificatie, tabel 4 ROM Code A00 waarin tekens en symbolen die worden ondersteund door de hd44780. Als je volg arcoss boven aan de tabel om de kolom van het symbool dat u zoekt, (Noteer de bovenste vier stukjes) en volg tot de rij met het symbool die u zoekt, noteer de 4 lage bits, van dat symbool.
Kunt u nu een volledige 8 bit symbool bouwen, converteert u dit binaire getal naar hex en deze hex waarde is wat u kunt verzenden met behulp van de functie hd44780_write_special{char().

De hd44780_write_special_char() functie verandert de RW en RS bits in de MPU-interface en stuurt het symbool naar het display (DDRAM) register (DR).

Na schrijven naar DR registreert de AC, adres teller is oplopend of verlaagd op basis van de status van de Increment/Decrement, instellingen van de Cursor links/Cursor rechts. Zodra u het beginadres de teller adres houdt spoor van waar de tekens/symbolen zijn geschreven.

 // this character and the next<br>// character takes up the full // 10 dots in height to print the // decending j and g</p><p>hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7);</p><p>hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA);</p><p>hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); 

Dit volgende gedeelte van de code gebruikt ook de functie hd44780_write_special_char() om karakters te schrijven aan de weergave. Twee van deze tekens zijn de kleine 'g' en 'j'. Het interessante ding om op te merken is dat deze twee tekens langer worden verlengd en gebruik van de volledige 10 dot patroon van het patroon van 5 x 10 karakter.
Dus bij het afdrukken van deze tekens u de weergave bij het aanroepen van de bovenstaande hd44780_init() functie wijzigen moet. De beperking van het display instellen op 5 x 10 teken dot patroon is los u één regel van het display, nu kunt u alleen afdrukken in één regel op het display.

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