【开发笔记】STC单片机4位数据模式直接驱动LCD1602显示屏

本文记录如何使用单片机直接驱动LCD1602显示屏。

为节省单片机管脚,采用4位数据模式驱动,含控制脚共需6个管脚,MCU与LCD各脚连接如下:

LCD1620 MCU(STC8或其它)
RS - P35
RW - P36(可直接接地)
EN - P37
D4 - P10
D5 - P11
D6 - P12
D7 - P13

代码如下:

void LCD1602_Write (u8 rs,u8 dat){
	LCD_RS	=	rs;
	LCD_RW	=	0;
	//写数据高四位
	LCD_EN	=	1;
	P10	=	((dat&0x10)?	1:0);
	P11	=	((dat&0x20)?	1:0);
	P12	=	((dat&0x40)?	1:0);
	P13	=	((dat&0x80)?	1:0);
	delayus(50);
	LCD_EN	=	0;	//下降沿写入
	//写数据低四位
	LCD_EN	=	1;
	P10	=	((dat&0x01)?	1:0);
	P11	=	((dat&0x02)?	1:0);
	P12	=	((dat&0x04)?	1:0);
	P13	=	((dat&0x08)?	1:0);
	delayus(50);
	LCD_EN	=	0;	//下降沿写入
}
//
void LCD1602_Init()
{
	//4-bit mode initialization
	LCD1602_Write(0,0x03);
	delayus(4500);
	LCD1602_Write(0,0x03);
	delayus(200);
	LCD1602_Write(0,0x03);
	delayus(200);
	LCD1602_Write(0,0x02);	//归位(返回)
	// display initialization
	LCD1602_Write(0,0x2B); //4>DL=0(4位数据),3>N=(2行),2>F=0(5x7字符)
	//delayms(20);
	LCD1602_Write(0,0x08); //显示开关控制:2>D=1(打开显示),1>C=0(关闭光标),0>B=0(光标不闪烁)
	LCD1602_Write(0,0x0C); // Display on /off control --> D = 1, C = 1, B = 0

	}
void main(void)
{
	LCD1602_Init();
	LCD1602_Set_Cursor(0,0);	
	LCD1602_Send_String("1234567890ABCDEF");
	LCD1602_Set_Cursor(1,0);
	LCD1602_Send_String("1234567890ABCDEF");

	while(1)
	{
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值