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

Steg 1: Hur man skriver ut specialtecken



SpecialCharacters.c

Titta över de nedan koden och vi kommer att granska

Ovan är en skärmdump av kodexemplet körs på displayen:

Märka linjen mellan 5 x 10 tecken. Min skärm är en ERM2004-1

Tittar på specifikationen den nedan karaktär detalj, kan förklara denna linje. Men jag kan inte säga säkert eftersom dokumentationen är begränsad.

#include
#include "hd44780_4bit_lib.h"
/*
* Denna kodexempel används 5 x 10 tecken och en rad
* att visa specialtecken showen i tabell 4, ROM koden A00
* i hd44780 specifikationen.
* Obs med 5 x 10 tecken kan du bara skriva en rad på
* displayen.
*
*/
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
Not 1 linje och 5 x 10 tecken
hd44780_init (N_1LINE, FONT_10);
om det behövs ställa in markören och blinka
hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR);
hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR_BLINK);
ställa in Increment riktning och markören riktning
hd44780_send_command(HD44780_CMD_INCREMENT);
hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT);
se tabell 4 ROM-koden AOO
om hur du konverterar övre 4 bitar och
sänka 4 bitar att formulera den under tecken
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);
denna karaktär och nästa
karaktär tar upp fullt
10 punkter i höjd för att skriva ut den
fallande j och 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);
}

Kan bryta koden ner och analysera det rad för rad:

Enligt spec ge displayen 10ms komma till spänning
__delay_cycles(10000 * CPUSPEED);

ställa in datalängd, antal linjer och teckensnitt
Not 1 linje och 5 x 10 tecken
hd44780_init (N_1LINE, FONT_10);

Funktionen __delay_cycles() pausar 10 millisekunder för att ge display spänningen komma att fungera, spänner. Ta en titt på filen hd44780_4bit_lib.h. Det finns vissa processorhastighet relaterade konstanter som definieras med __delay_cycles() funktion.
Obs: __delay_cycles() funktion kan endast ta konstanter som argument så du inte kan använda en variabel med denna funktion.

Funktionen hd44780_init() initierar displayen och argument kan överföras för att fastställa antalet linjer och teckenstorlek. Denna funktion sätter också upp hd44780 gränssnittet att använda 4 bitars drift istället för 8-bitars drift. Kolla specifikationen för detaljer.

om det behövs ställa in markören och blinka
hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR);
hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR_BLINK);

ställa in Increment riktning och markören riktning
hd44780_send_command(HD44780_CMD_INCREMENT);
hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT);

Funktionen hd44780_send_command() används för att skicka kommandon till hd44780 gränssnittet. Hd44780 kan acceptera både kommandon och data. Genom att ändra vissa bitar i MPU-gränssnittet kan du antingen skicka data eller instruktioner.
Så i detta nästa exempel, om vi o-kommentera antingen av två linjer kan vi Visa en markör och eller blink markören.

Om du är intresserad finns i referens till RS registrera väljare lite, r och RW, läsa skriva lite mer information.

En av de coola saker du kan göra med hd44780 gränssnittet är avgör om du vill skriva data från vänster till höger eller höger till vänster. Dessa två kommandon bestämma dessa inställningar. Vi kan öka eller minska markören flytta riktningen och flytta markören till vänster eller höger när data skickas till displayen.

se tabell 4 ROM-koden AOO
om hur du konverterar övre 4 bitar och
sänka 4 bitar att formulera den under tecken
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);

Det finns en tabell i specifikationen, tabell 4 ROM koden A00 som listar tecken och symboler som stöds av hd44780. Om du följa arcoss upp på bordet för att få kolonnen av symbolen du letar, (Skriv ner de övre fyra bitarna) och följ sedan ner till raden som innehåller symbolen du söker, skriv ner de lägre 4 bitarna, av denna symbol.
Du nu kan uppföra en full 8-bitars symbol, omvandla denna binära tal till hex och denna hex värde är vad du kan skicka med funktionen hd44780_write_special{char().

Funktionen hd44780_write_special_char() ändrar RW och RS bitar i MPU gränssnittet och skickar symbolen till registret display (DDRAM) (DR).

När skrivning till DR registrerat AC, adress räknaren är ökat eller minskas baserat på status för öka/minska, markörknappen vänster/markören höger inställningar. När du anger startadressen adress räknaren håller reda på där tecken/symboler skrivs.

denna karaktär och nästa < br > / / karaktär tar upp fullt
10 punkter i höjd för att skriva ut den
fallande j och 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);

Denna nästa avsnitt i koden använder också funktionen hd44780_write_special_char() för att skriva tecken till displayen. Två av dessa tecken är de gemena "g" och "j". Det intressanta att notera är att dessa två tecken är utökad längre och använda full 10 dot mönstret av 5 x 10 karaktär mönster.
Så när du skriver ut dessa tecken måste du ändra displayen på att funktionen ovan hd44780_init(). Begränsningen av att displayen att 5 x 10 tecken punktmönster är du lös en rad med displayen, nu kan du bara skriva ut till en rad på displayen.

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...