Lcd.h: Rozdiel medzi revíziami
Zo stránky SensorWiki
Vytvorená stránka „<source lang="c"> →* Created: 12/12/2012 12:12:12 * Authors: Lukas Mrva (55716), Vladimir Reksak (55720): // HD44780 LCD controller command set (do not modif...“ |
Bez shrnutí editace |
||
(Jedna medziľahlá úprava od rovnakého používateľa nie je zobrazená.) | |||
Riadok 1: | Riadok 1: | ||
<source lang="c"> | <source lang="c"> | ||
/ | // DEM16216 LCD controller command set (do not modify these) | ||
#include <avr/io.h> | #include <avr/io.h> | ||
#include <util/delay.h> | #include <util/delay.h> | ||
//#define LCD_DELAY asm volatile ("nop") | //#define LCD_DELAY asm volatile ("nop") | ||
Riadok 37: | Riadok 33: | ||
// port and pins you will use for control lines | // port and pins you will use for control lines | ||
#define LCD_CTRL_PORT | #define LCD_CTRL_PORT PORTB | ||
#define LCD_CTRL_DDR | #define LCD_CTRL_DDR DDRB | ||
#define LCD_CTRL_RS 3 | #define LCD_CTRL_RS 3 | ||
#define LCD_CTRL_RW | #define LCD_CTRL_RW 4 | ||
#define LCD_CTRL_E | #define LCD_CTRL_E 5 | ||
// port you will use for data lines | // port you will use for data lines | ||
#define LCD_DATA_PORT | #define LCD_DATA_PORT PORTC | ||
#define LCD_DATA_PIN | #define LCD_DATA_PIN PINC | ||
#define LCD_DATA_DDR | #define LCD_DATA_DDR DDRC | ||
#define LCD_DATA_D7 | #define LCD_DATA_D7 3 | ||
#define LCD_DATA_D6 | #define LCD_DATA_D6 2 | ||
#define LCD_DATA_D5 | #define LCD_DATA_D5 1 | ||
#define LCD_DATA_D4 | #define LCD_DATA_D4 0 | ||
// define pin which control backlight | // define pin which control backlight | ||
#define LCD_CTRL_LIGHT 4 | #define LCD_CTRL_LIGHT 4 | ||
// access mode you will use (default is 8bit unless 4bit is selected) | // access mode you will use (default is 8bit unless 4bit is selected) | ||
#define LCD_DATA_4BIT | #define LCD_DATA_4BIT | ||
// LCD display geometry | // LCD display geometry | ||
Riadok 78: | Riadok 75: | ||
</source> | </source> | ||
Aktuálna revízia z 14:44, 24. január 2013
// DEM16216 LCD controller command set (do not modify these)
#include <avr/io.h>
#include <util/delay.h>
//#define LCD_DELAY asm volatile ("nop")
#define LCD_DELAY _delay_us(5)
#define SETBIT(VAR,BIT) (VAR|=(1<<BIT))
#define CLEARBIT(VAR,BIT) (VAR&=~(1<<BIT))
#define CHECKBIT(VAR,BIT) (VAR&(1<<BIT))
#define LCD_CLR 0 // DB0: clear display
#define LCD_HOME 1 // DB1: return to home position
#define LCD_ENTRY_MODE 2 // DB2: set entry mode
#define LCD_ENTRY_INC 1 // DB1: increment
#define LCD_ENTRY_SHIFT 0 // DB2: shift
#define LCD_ON_CTRL 3 // DB3: turn lcd/cursor on
#define LCD_ON_DISPLAY 2 // DB2: turn display on
#define LCD_ON_CURSOR 1 // DB1: turn cursor on
#define LCD_ON_BLINK 0 // DB0: blinking cursor
#define LCD_MOVE 4 // DB4: move cursor/display
#define LCD_MOVE_DISP 3 // DB3: move display (0-> move cursor)
#define LCD_MOVE_RIGHT 2 // DB2: move right (0-> left)
#define LCD_FUNCTION 5 // DB5: function set
#define LCD_FUNCTION_8BIT 4 // DB4: set 8BIT mode (0->4BIT mode)
#define LCD_FUNCTION_2LINES 3 // DB3: two lines (0->one line)
#define LCD_FUNCTION_10DOTS 2 // DB2: 5x10 font (0->5x7 font)
#define LCD_CGRAM 6 // DB6: set CG RAM address
#define LCD_DDRAM 7 // DB7: set DD RAM address
// ________________________________________________________
#define LCD_BUSY 7 // DB7: LCD is busy
// port and pins you will use for control lines
#define LCD_CTRL_PORT PORTB
#define LCD_CTRL_DDR DDRB
#define LCD_CTRL_RS 3
#define LCD_CTRL_RW 4
#define LCD_CTRL_E 5
// port you will use for data lines
#define LCD_DATA_PORT PORTC
#define LCD_DATA_PIN PINC
#define LCD_DATA_DDR DDRC
#define LCD_DATA_D7 3
#define LCD_DATA_D6 2
#define LCD_DATA_D5 1
#define LCD_DATA_D4 0
// define pin which control backlight
#define LCD_CTRL_LIGHT 4
// access mode you will use (default is 8bit unless 4bit is selected)
#define LCD_DATA_4BIT
// LCD display geometry
// change these definitions to adapt settings
#define LCD_LINES 2 // visible lines
#define LCD_LINE_LENGTH 16 // line length (in characters)
// cursor position to DDRAM mapping
#define LCD_LINE0_DDRAMADDR 0x00
#define LCD_LINE1_DDRAMADDR 0x40
// **************************************************
extern unsigned char lcdBusy(void); // waits until LCD is not busy
extern void lcdControlWrite(unsigned char c_data); // writes a control command to the LCD
extern unsigned char lcdControlRead(void); // read the control status from the LCD
extern void lcdDataWrite(unsigned char w_data) ; // writes a data byte to the LCD screen at the current position
extern unsigned char lcdDataRead(void); // reads the data byte on the LCD screen at the current position
extern void lcdInit4(void);
extern unsigned char ReadButtons();
extern void lcdStringWrite(char* String);