51单片机 的 字符型液晶驱动函数

本文介绍了一种LCD模块(LCM)与单片机(MCU)之间的接口程序设计方法,通过定义特定的宏指令实现LCD的初始化、清屏、光标归位等功能,并详细展示了如何通过MCU的I/O口进行数据与命令的发送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//注意lcm与单片机连接方式 必须是lcm作为mcu的一个普通的I/O设备来使用,即lcm使用mcu外扩地址总线 和数据总线来和mcu传递信息
#define LCD_INIT 56							//初始化
#define LCD_CLS 1							//清屏
#define LCD_HOME 2							//光标归位
#define LCD_VISIABLE 12						//显示
#define LCD_INVISIABLE 8					//灭灯
#define LCD_SETDDADDR 128					//显示区域首地址

unsigned char pdata * LCD_CMD_WR =	12;		//lcd命令口地址依硬件连接而定
unsigned char pdata * LCD_DATA_WR =13;		//lcd写数据口地址依硬件连接而定
unsigned char pdata * LCD_BUSY_RD =14;		//lcd读数据口地址依硬件连接而定
void chkbusy();					//等待lcd空闲函数
void wrstr(unsigned char * pt);				//向lcd写以0结尾的字符串
void wrcmd(unsigned char c);				//向lcd写命令
void chkbusy(){
	unsigned char c = 1;					//如果读取到lcd状态位为1则再次读取
	while(c!=0){c = (* LCD_BUSY_RD) & 0x80;}
}

void wrstr(unsigned char * pt){				//写字符串到lcd
	unsigned char i=0;
	while(pt[i]!=0){
		chkbusy();							//等待lcd
		* LCD_DATA_WR = pt[i++];			//写字符到lcd数据口
	}
	chkbusy();								//等待lcd
	wrcmd(LCD_HOME);						//lcd光标归位
}
void wrcmd(unsigned char c){				//lcd 写命令
	chkbusy();								//等待lcd
	*LCD_CMD_WR = c;						//写命令到命令口
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanzhong104204

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值