lcd.h

来自「JRM 128*64 LCD测试程序 STC 1T CPU」· C头文件 代码 · 共 69 行

H
69
字号
/*
sbit		lcd_cs1		=	P1^4;
sbit		lcd_cs2		=	P1^5;
sbit		lcd_e		=	P1^6;
sbit		lcd_di		=	P1^7;
*/
sbit		lcd_cs1		=	P1^4;
sbit		lcd_cs2		=	P1^5;
sbit		lcd_e		=	P2^2;
sbit		lcd_di		=	P2^0;

void lcd_sendcommand(uchar m_s, uchar command)
{
	lcd_di=0;
	if(m_s&1){	// Master
		lcd_cs1=1;  lcd_cs2=0;
		P0=command;
		lcd_e=1;  lcd_e=0;
	}
	if(m_s&2){	// Slave
		lcd_cs1=0;  lcd_cs2=1;
		P0=command;
		lcd_e=1;  lcd_e=0;
	}
}

void lcd_senddata(uchar m_s, uchar command)
{
	lcd_di=1;
	if(m_s&1){	// Master
		lcd_cs1=1;  lcd_cs2=0;
		P0=command;
		lcd_e=1;  lcd_e=0;
	}
	if(m_s&2){	// Slave
		lcd_cs1=0;  lcd_cs2=1;
		P0=command;
		lcd_e=1;  lcd_e=0;
	}
}

void lcd_setxyaddr(uchar x, uchar y)
{
	if(y<64){
		lcd_sendcommand(1, 0xB8+x);
		lcd_sendcommand(1, 0x40+y);
	}else{
		lcd_sendcommand(2, 0xB8+x);
		lcd_sendcommand(2, y);
	}
}

void lcd_clrscr(void)
{
	uchar row,i;
	for(row=0; row<8; row++){
		lcd_sendcommand(3, 0xB8+row);
		lcd_sendcommand(3, 0x40);
		for(i=64; i>0; i--)
			lcd_senddata(3, 0x0);
	}
}

void lcd_open(void)
{
	lcd_sendcommand(3, 0x3F);				// LCD reset
	lcd_sendcommand(3, 0xC0);				// LCD start line=0
	lcd_clrscr();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?