//#define lcd_bus PORTB // 数据总线
#define rs PORTA.5 // 数据&指令选择,H:写数据,L:写指令
#define rw PORTA.6 // 读&写选择,H:read,L:write
#define e PORTA.7 // 读写使能
//#define bf 7 // 忙闲状态标志位,PORTA.7,H:内部正执行操作,L:空闲
/*显示屏命令写入函数*/
void LCD_write_com(unsigned char com)
{
rs=0;;
rw=0;
e=1;
PORTB = com;
delayus(5);
e=0;
}
/*显示屏数据写入函数*/
void LCD_write_data(unsigned char data)
{
rs=1;
rw=0;
e=1;
PORTB = data;
delayms(5);
e=0;
}
/*显示屏清空显示*/
void LCD_clear(void)
{
LCD_write_com(0x01);
delayms(5);
}
/*显示屏字符串写入函数*/
void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s)
{
if (y == 0)
{
LCD_write_com(0x80 + x);
}
else
{
LCD_write_com(0xC0 + x);
}
while (*s)
{
LCD_write_data( *s);
s ++;
}
}
/*显示屏单字符写入函数*/
void LCD_write_char(unsigned char x,unsigned char y,unsigned char data)
{
if (y == 0)
{
LCD_write_com(0x80 + x);
}
else
{
LCD_write_com(0xC0 + x);
}
LCD_write_data( data);
}
/*显示屏初始化函数*/
void lcd_init(void)
{
//unsigned char i;
DDRB = 0xFF; /*I/O口方向设置*/
DDRA |= (1