欢迎来到天天文库
浏览记录
ID:1483500
大小:30.50 KB
页数:6页
时间:2017-11-11
《lcd1602驱动程序 (2)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、LCD1602是每一个电子类行业初学者必须会使用的显示设备。LCD1602也是一个非常简单的显示设备,相比于数码管而言,它是反射式显示设备即外界的光强时它才会有显示,所以黑夜是看不到显示的而必须加背光。LCD1602有两行每行16个单元共32个单元的显示单位。LCD1602有的支持中文字库有的不支持。当然不支持中文字库的也可以显示中文这时候需要自定义中文字符(相关技术可查阅以下)。LCD1602的指令分为写数据和写命令两种,他们的指令有着严格的格式。可以查阅一下中文数据手册。LCD1602共16个引脚,分别为:VDD:地VCC:+
2、5V电源VEE:对比度,即调节显示字符的显著度RS:写寄存器或数据的选择位R/W:读或写选择位E:使能位D0-D7:数据口BL+:背光的正电源端BL-:背光的地下面是LCD1602的驱动程序:#include#include#defineucharunsignedchar#defineuintunsignedint#defineDataPortP0//定义液晶数据传输口sbitLCM_RS=P2^7;//定义液晶显示控制口sbitLCM_RW=P2^6;sbitLCM_EN=P2^5;/**
3、********************************************************函数名:Wait_Enable功能:等待1602液晶完成内部操作参数:无返回值:无***********************************************************/voidWait_Enable(void){DataPort=0xff;//DataPort=11111111切换PO口为输入状态LCM_RS=0;//RS为低电平,RW为高电平时才可以读忙信号LCM_RW=1;_nop_
4、();LCM_EN=1;_nop_();_nop_();while(DataPort&0x80){};//相与等于0,说明BF为0,不忙;等于1,BF=1,忙碌LCM_EN=0;//判断忙碌之后,置位EN=0,液晶不执行任何操作}/**********************************************************函数名:Write_Command功能:向液晶模块写入命令参数:cmd--命令chk--是否判忙的标志,1:判忙,0:不判返回值:无****************************
5、*******************************/voidWrite_Command(ucharcmd,ucharchk){if(chk)Wait_Enable();LCM_RS=0;//当RS和RW都为低电平时才可以写入指令或者显示地址LCM_RW=0;_nop_();DataPort=cmd;//将命令置入数据总线_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;//EN由高电平到低电平,液晶执行写指令操作}/***********************************
6、***********************函数名:Write_Data功能:向液晶显示的当前地址写入显示数据参数:data--显示字符数据返回值:无***********************************************************/voidWrite_Data(uchardatas){Wait_Enable();LCM_RS=1;//RS高电平,RW低电平时可以写入数据LCM_RW=0;_nop_();DataPort=datas;//置数据到数据总线_nop_();LCM_EN=1;_no
7、p_();_nop_();LCM_EN=0;}/**********************************************************函数名:voidInitLcd()功能:对LCD1602进行初始化参数:无返回值:无**********************************************************/voidInitLcd(){Write_Command(0x3c,1);//设置显示模式:8位2行5*7点阵Write_Command(0x08,1);//显示器关,不显
8、示光标,光标不闪烁Write_Command(0x01,1);//清屏并光标复位Write_Command(0x06,1);//文字不动,光标自动右移Write_Command(0x0c,1);//显示开,不开光标,不闪烁}/***********
此文档下载收益归作者所有