Operácie

MMP Cvičenie 3: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Balogh (diskusia | príspevky)
Bez shrnutí editace
Riadok 63: Riadok 63:
** Displej 2x16 [http://ap.urpi.fei.stuba.sk/mmp/DEM20231SYH-PY.pdf DEM 20231 SYH-PY]
** Displej 2x16 [http://ap.urpi.fei.stuba.sk/mmp/DEM20231SYH-PY.pdf DEM 20231 SYH-PY]


* Peter Ouwehand: '''[http://home.iae.nl/users/pouweha/lcd/lcd.shtml How to control a HD44780-based Character-LCD]'''
* Ian Harries: ''[http://www.doc.ic.ac.uk/%7Eih/doc/lcd/ HD44780-Based LCD Modules]'''
* Nuts & Volts: [http://www.parallax.com/dl/docs/cols/nv/vol1/col/nv31.pdf Demystifying Character Based LCDs]
* Nuts & Volts: [http://www.parallax.com/dl/docs/cols/nv/vol1/col/nv31.pdf Demystifying Character Based LCDs]
* [http://www.parallax.com/Portals/0/Downloads/docs/prod/audiovis/Hit44780.pdf Hitachi 44780 Driver]
* [http://www.parallax.com/Portals/0/Downloads/docs/prod/audiovis/Hit44780.pdf Hitachi 44780 Driver]
* 2x16 Parallel LCD [http://www.parallax.com/Portals/0/Downloads/docs/prod/audiovis/lcd2x16par.pdf datasheet]
* 2x16 Parallel LCD [http://www.parallax.com/Portals/0/Downloads/docs/prod/audiovis/lcd2x16par.pdf datasheet]
* Stamp Works - pp. 73 and more [http://www.parallax.com/Portals/0/Downloads/docs/books/sw/Web-SW-v2.1.pdf]
* Stamp Works - pp. 73 and more [http://www.parallax.com/Portals/0/Downloads/docs/books/sw/Web-SW-v2.1.pdf]
 
* [http://www.sous.cz/struna/cd/hd44780.html Obvod HD44780] HW server [hw.cz]
# Tomáš Dresler: Inteligentní displeje a jejich připojení k PC. [hw.cz]
# Datasheet HD44780 [Hitachi], [local copy]
# Podrobné manuály sú aj u výrobcu Hantronix.
* Tomáš Dresler: '''[http://www.hw.cz/ART632-Inteligentni-displeje-a-jejich-pripojeni-k-PC.html Inteligentní displeje a jejich připojení k PC]'''. [hw.cz]
* Datasheet HD44780 [<a href="http://cn.renesas.com/media/products/lcd/discontinued_products/d_e780u.pdf">Hitachi</a>],
          [<a href="./pdf/hd44780.pdf">local copy</a>]
  Podrobné manuály sú aj u <a href="http://www.hantronix.com/3_1.html%20">výrobcu Hantronix</a>.





Verzia z 12:59, 4. október 2010

Programovateľný LCD displej

  • Toto je skompilovaná ukážka možností práce s displejom.

Ďalej máte k dispozícii knižnicu (lcd.c, lcd.h) s fungujúcou inicializáciou displeja a príkazmi na ovládanie. Pripravené sú funkcie:

void lcdInit4(void);                     	// inicializácia displeja 4-bitovo	

void lcdControlWrite(unsigned char c_data);	// zapíše príkaz do displeja
void lcdDataWrite(unsigned char w_data) ;	// zapíše znak na LCD na aktuálnu pozíciu


Úlohy

Najprv sa snažte pochopiť, ako je vytvorený vzorový program, ako sa konfiguruje pripojenie LCD k portom, skontrolujte konfiguráciu. Potom s pomocou manuálu k displeju zobrazte na displeji nejaký text a zrealizujte nasledovné funkcie:

  1. . posun kurzora doprava / dolava
  2. . posun obsahu displeja doprava / dolava
  3. . napíšte funkciu funkcia void lcdGotoXY(riadok, stlpec)
  4. . clear displeja (a obnovenie povodneho obsahu displeja)
  5. . zadefinujte si vlastné znaky a zobrazte ich spolu s iným textom. Povinne aspoň jeden znak s diakritikou a znak stupeň, zobrazte teplotu.


Zdrojáky

  • Knižnica pre prácu s LCD zapojeným podľa obrázku - lcd.c, lcd.h
#include "lcd.h"


int main(void)
{

 unsigned char znak;
 
 lcdInit4();
 lcdControlWrite(1<<LCD_CLR);

 for(znak='A';znak<'E';znak++)
      lcdDataWrite(znak);

 lcdControlWrite(0x40+0x80);
for(znak='F';znak<'Q';znak++)
      lcdDataWrite(znak);

 while (1);
 return 0;
}

Literatúra

  1. Tomáš Dresler: Inteligentní displeje a jejich připojení k PC. [hw.cz]
  2. Datasheet HD44780 [Hitachi], [local copy]
  3. Podrobné manuály sú aj u výrobcu Hantronix.
         [<a href="./pdf/hd44780.pdf">local copy</a>]
 Podrobné manuály sú aj u <a href="http://www.hantronix.com/3_1.html%20">výrobcu Hantronix</a>. 


Arduino

/*
  LiquidCrystal Library - Hello World
 
 Demonstrates the use a 16x2 LCD display.  
 
   The circuit:
 * LCD RS pin to digital pin 12
 * LCD R/W pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 4
 * LCD D5 pin to digital pin 5
 * LCD D6 pin to digital pin 6
 * LCD D7 pin to digital pin 7                    
 */

#include <LiquidCrystal.h>           // include the library 

// initialize the library with the numbers of the interface pins
//  LiquidCrystal(RS, RW, EN, D4, D5, D6, D7) 
LiquidCrystal lcd( 3,  2,  1,  4,  5,  6,  7);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("Ahoj!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

Misc: