📄 lcd.c
字号:
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
/////////////////////////////////////////////////
const char TopMessage[] = "RUPANAGUDI POWER";
const char BotMessage[] = " SYSTEMS ";
///////////////////////////////////////////////////
#define E PB7
#define RS PB6
//////////////////////////////////////////////////
void LCDWrite(int LCDData, char RSValue)
{PORTD = LCDData & 0xF0;
PORTB |= _BV(RSValue);
PORTB |= _BV(E);
PORTB |= ~_BV(E);
PORTD = (LCDData<<4) & 0xF0;
PORTB |= _BV(RSValue);
PORTB |= _BV(E);
PORTB |= ~_BV(E);
_delay_ms(5);
} // End LCDWrite
//----------------------------------
void lcd_puts(unsigned char *s)
{ while(*s)
LCDWrite(*s++,1);
}
//----------------------------------
void LINE1()
{LCDWrite(0X80, 0);
}
//----------------------------------
void LINE2()
{LCDWrite(0XC0, 0);
}
//----------------------------------
void LCD_CLEAR()
{LCDWrite(0X01, 0);
}
//----------------------------------
void lcd_init()
{ char i;
PORTD = 0;
_delay_ms(40);
PORTD = 0X30;
PORTB |= _BV(E);
PORTB |= ~_BV(E);
_delay_ms(5);
PORTB |= _BV(E);
PORTB |= ~_BV(E);
_delay_ms(1);
PORTB |= _BV(E);
PORTB |= ~_BV(E);
_delay_ms(1);
PORTD = 0X20;
PORTB |= _BV(E);
PORTB |= ~_BV(E);
_delay_ms(1);
LCDWrite(0X28, 0);
LCDWrite(0X08, 0);
LCDWrite(0X01, 0);
LCDWrite(0X06, 0);
LCDWrite(0X0F, 0);
LCDWrite(0X80, 0);
for (i = 0; TopMessage[i] != 0; i++)
LCDWrite(TopMessage[i], 1);
LCDWrite(0xC0, 0);
for (i = 0; BotMessage[i] != 0; i++)
LCDWrite(BotMessage[i], 1);
}
//-------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -