You are on page 1of 2

lcd.

Page:1/2

D:\Projects\HvA\Projecten\Blok 2\ProjectEnergieMain\ProjectEnergieMain\

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:

Last modification: 17-1-2013 13:41:02

/*
* lcd.c
* Project Energie
*
* Build 0.2A
* Author: Jeroen
*/
#include "settings.h"
#include <avr/io.h>
#include <util/delay.h>
#include "lcd.h"
char lcdClear = 1;
void initlcd(void)
{
DDRD = 0xFF;
DDRB = DDRB|0x03;
_delay_ms(15);
lcdcommand(LCD_FUNCTION | LCD_FUNCTION_8BIT | LCD_FUNCTION_4LINE);
lcdcommand(LCD_ON_OFF | LCD_ON_OFF_DISPLAY /*| LCD_ON_OFF_CURSOR*/);
lcdcommand(LCD_CLEAR);
lcdcommand(LCD_ENTRY_MODE | LCD_ENTRY_MODE_DIR);
}
void lcdwrite(char d, char type)
{
PORTB = type;
PORTB = PORTB|0x02;
PORTD = d;
PORTB = PORTB&0xFD;
_delay_us(1520);
}
void lcdputs(char *s) {
while (*s)
{
lcdputc(*s++);
}
}
void lcd_gotoxy(int x, int y) {
switch(y) {
case 0: y = LCD_LINE_0; break;
case 1: y = LCD_LINE_1; break;
case 2: y = LCD_LINE_2; break;
case 3: y = LCD_LINE_3; break;
default: y = LCD_LINE_0; break;
}
if(x > 20 || x < 0) x = 0;
lcdcommand(LCD_DDRAM_SET | (x+y));
}
void clr(void) {
if(lcdClear != 1)
lcdcommand(LCD_CLEAR);
lcdClear = 1;

PSPad editor 4.5.6 (2427) www.pspad.com

21-1-2013 10:38:50

Jeroen

lcd.c

Page:2/2

D:\Projects\HvA\Projecten\Blok 2\ProjectEnergieMain\ProjectEnergieMain\

Last modification: 17-1-2013 13:41:02

61: }
62:
63: void unclr(void) {
64:
lcdClear = 0;
65: }

PSPad editor 4.5.6 (2427) www.pspad.com

21-1-2013 10:38:50

Jeroen

You might also like