Operácie

Lcd.h: Rozdiel medzi revíziami

Zo stránky SensorWiki

StudentDVPS (diskusia | príspevky)
Bez shrnutí editace
StudentDVPS (diskusia | príspevky)
Bez shrnutí editace
 
Riadok 1: Riadok 1:
<source lang="c">
<source lang="c">
/*
// DEM16216 LCD controller command set (do not modify these)
*  Created: 12/12/2012 12:12:12
*  Authors: Lukas Mrva (55716), Vladimir Reksak (55720)
*/
 
// HD44780 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 PORTD
#define LCD_CTRL_PORT PORTB
#define LCD_CTRL_DDR DDRD
#define LCD_CTRL_DDR DDRB
#define LCD_CTRL_RS 3
#define LCD_CTRL_RS 3
#define LCD_CTRL_RW 2
#define LCD_CTRL_RW 4
#define LCD_CTRL_E 1
#define LCD_CTRL_E 5
 


// port you will use for data lines
// port you will use for data lines
#define LCD_DATA_PORT PORTD
#define LCD_DATA_PORT PORTC
#define LCD_DATA_PIN PIND
#define LCD_DATA_PIN PINC
#define LCD_DATA_DDR DDRD
#define LCD_DATA_DDR DDRC
#define LCD_DATA_D7 7
#define LCD_DATA_D7 3
#define LCD_DATA_D6 6
#define LCD_DATA_D6 2
#define LCD_DATA_D5 5
#define LCD_DATA_D5 1
#define LCD_DATA_D4 4
#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>
Na stiahnutie: [[Súbor: lcd.h]]
----
[[Projekt: Inkrementálny snímač otáčok|Späť na zadanie]]

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);